2010-09-08 148 views
1
的名單

可能重複:
How do you split a list into evenly sized chunks in Python?從元組列表轉換爲列表元組

我的元組的列表,每個元組有兩個項目(元組的數量可能會有所不同)。

[(a, b), (c, d)...)] 

我要將列表轉換爲一個元組的嵌套列表,以便每個嵌套列表包含4元組,如果元組的原始列表具有數量不能被4整除例如13,那麼最終列表應該包含13,1元組剩餘的剩餘量。

[[(a, b), (c, d), (e, f), (g, h)], [(a, b), (c, d), (e, f), (g, h)]...] 

一個關於Python的我喜歡的東西是不同的數據結構之間的轉換,我希望有可能是這樣的方法或構建這一問題,這將是更Python那麼什麼㈣來的方法和構建與...一起。

image_thumb_pairs = [(a, b), (c, d), (e, f), (g, h), (i, j)] 
    row = [] 
    rows = [] 
    for i, image in enumerate(image_thumb_pairs): 
     row.append(image) 
     if(i+1) % 4 == 0: 
      rows.append(row) 
      row = [] 
    if row: 
     rows.append(row) 

回答

2
>>> lst = [(1,2), (3,4), (5,6), (7,8), (9,10), (11,12), (13, 14), (15, 16), (17, 18)] 
>>> [lst[i:i+4] for i in xrange(0, len(lst), 4)] 
[[(1, 2), (3, 4), (5, 6), (7, 8)], [(9, 10), (11, 12), (13, 14), (15, 16)], [(17, 18)]]