可能重复:
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之一是用于在不同数据结构之间进行转换的方法和构造,我希望可能有这样一个方法或构造来解决这个问题,这个问题比我提出的更加pythonic。 / p>
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)
答案 0 :(得分: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)]]