我有一个元组列表:

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

但那是合并元组。

有没有更好的解决方案可以做同样的事情?

最佳答案

您可以使用列表理解,将项目成对压缩。

Items = [(4, 2), (1, 1), (2, 4), (8, 6), (11, 4), (10, 2), (7, 3), (6, 1)]
New_Items = [list(pair) for pair in zip(Items[::2], Items[1::2])]

>>> New_Items
[[(4, 2), (1, 1)], [(2, 4), (8, 6)], [(11, 4), (10, 2)], [(7, 3), (6, 1)]]

关于python - 元组列表中的 2 个项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35448907/

10-13 04:38