将元组列表转换为元组列表的列表
可能重复的问题:
如何在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”的方法来解决这个问题,而不是我自己想到的办法。
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)
1 个回答
2
在编程中,很多时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们刚开始学习编程的时候。比如,有时候我们在运行代码时会出现错误,或者代码的表现和我们预期的不一样。这种情况下,查找解决方案就变得非常重要。
在网上,有很多地方可以找到帮助,比如StackOverflow这个网站。这里聚集了很多程序员,他们会分享自己的经验和解决方案。当你遇到问题时,可以在这个平台上搜索相关的内容,看看别人是如何解决类似问题的。
总之,编程的学习过程就是不断尝试和解决问题的过程。遇到困难时,不要气馁,记得去寻找帮助和资源,这样你会逐渐变得更加熟练。
>>> 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)]]