我試圖總結我的頭圍繞如何被執行該代碼:列表綜合運行序列
def t(xs):
return [[xs[i][j] for i in range(len(xs))] for j in range(len(xs[0]))]
>>> y = t([[1,2,3],[4,5,6]])
所以我想輸出將是:
[1,2,3,4,5,6]
通過設置for i in range(...)
作爲外圈,但注意到輸出實際上是:
[[1,4],[2,5],[3,6]]
我不確定爲什麼,是因爲第一個循環在方括號之間,因此它會作爲內部循環運行?當我嘗試了這個問題並刪除了括號時,我得到了我最初期待的答案,但不知道爲什麼以及如何改變順序。
感謝您的意見,現在擴大代碼。 –
我相信最後一個代碼示例中的for循環會被切換。 '[x for y in z for x in y]'相當於'for y in z:for x in y:result.append(x)' –
呃,循環順序在這裏是無關緊要的,只要它在邏輯上當量。 – gjha