2013-02-15 204 views
0

如何創建一個函數來以這種方式迭代我的列表。 似乎簡單,但即時通訊卡...通過嵌套列表進行迭代

myList= [[1,2,3], [4,5,6], [7,8,9]] 

    def name(myList): 
     somework.. 

    newList = [[1,4,7]. [ 2,5,8], [3,6,9]] 
+0

你是否想要一種轉換你的列表的方法? – Floris 2013-02-15 04:27:26

+0

[Python中的移調/解壓縮函數]可能的重複(http://stackoverflow.com/questions/19339/a-transpose-unzip-function-in-python) – JBernardo 2013-02-15 05:08:33

回答

3
In [3]: zip(*myList) 
Out[3]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)] 

,如果你特別希望清單

In [4]: [list(x) for x in zip(*myList)] 
Out[4]: [[1, 4, 7], [2, 5, 8], [3, 6, 9]] 

zip函數查找更多的細節在this

+0

你能產生一個相同的函數嗎? – BAI 2013-02-15 04:29:42

+0

@BAI - 在編輯之前,這裏有一個不必要的list-comp。它已被刪除。 – mgilson 2013-02-15 04:30:29

2

zip是你想要的+論證拆包。這很棒。我喜歡把它看作python的內置轉置。

newList = zip(*myList) 

這實際上給你tuple可迭代(python3.x)或list(python2.x),但是這對於大多數來說已經足夠好。