我有一个元组列表:
Items = [(4, 2), (1, 1), (2, 4), (8, 6), (11, 4), (10, 2), (7, 3), (6, 1)]
我想在 for
循环中这样获取它:
NewItems = [[(4, 2), (1, 1)],
[(2, 4), (8, 6)],
[(11, 4), (10, 2)],
[(7, 3), (6, 1)]]
我做了这个:
NewItems = []
while len(Items) > 0:
NewItems.append([Items[0], Items[1]])
del Items[0:2]
print NewItems
我认为删除Items
变量并不是最好的方法。然后我尝试做了这个:
newList = iter(Items)
NewItems = []
for a, b in zip(newList, newList):
NewItems.append([a, b])
print NewItems
但这是合并元组的方法。
有没有更好的解决方案可以达到相同的效果?
zip(Items, Items[1:])
- DharmikNewItems = [list(x) for x in zip(newList, newList)]
。如果您不介意使用元组而不是列表,那么更简单:NewItems = list(zip(newList, newList))
。迭代版本避免了创建任何中间列表-因此是我首选的方法。 - AChampion