2014-03-31 305 views
1

請我如何能遍歷嵌套列表得到的元組的嵌套列表出來的,例如循環盆栽得到的rslt轉換嵌套列表嵌套元組

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

我試圖

b = [] 

for i in pot: 
    for items in i: 
     b = zip(pot[0][0:],pot[0][1:]) 

但沒有得到所期望的輸出由於

希望的結果=

rslt = [[(1,2),(3,4)],[(5,6),(7,8)]] 
+0

什麼是期望的結果呢? –

+0

只需將它全部明確寫入,而不使用zip,我相信你可以弄明白。這只是兩個級別的循環。 –

+0

期望的結果是rslt或應該顯示爲rslt。謝謝 – user2868810

回答

2

基礎上grouperrecipe in the itertools documentation,你可以嘗試這樣的事情(假設你的子表的長度已指示):

>>> def grouper(iterable, n): 
    args = [iter(iterable)] * n # creates a list of n references to the same iterator object (which is exhausted after one iteration) 
    return zip(*args) 

現在你可以測試一下:

>>> pot = [[1,2,3,4],[5,6,7,8]] 
>>> rslt = [] 
>>> for sublist in pot: 
    rslt.append(grouper(sublist, 2)) 
>>> rslt 
[[(1, 2), (3, 4)], [(5, 6), (7, 8)]] 
1

可以也使用列表理解:

[[(a, b), (c, d)] for a, b, c, d in l] 
+0

如果l很長,這可能不起作用 – user2868810