如何将列表转换为元组列表?元组由位于列表的偶数和奇数索引处的元素组成。例如,我有一个列表[0, 1, 2, 3, 4, 5]
,需要将其转换为[(0, 1), (2, 3), (4, 5)]
。
我能想到的一种方法如下。
l = range(5)
out = []
it = iter(l)
for x in it:
out.append((x, next(it)))
print(out)
答案 0 :(得分:10)
与iter
一起玩:
it = iter(l)
zip(it, it)
# [(0, 1), (2, 3), (4, 5)]
您还可以分步2和zip
:
list(zip(l[::2], l[1::2]))
# [(0, 1), (2, 3), (4, 5)]
答案 1 :(得分:3)
使用列表理解:
[(x, y) for x, y in zip(l[::2],l[1::2])]
[(0, 1), (2, 3), (4, 5)]
答案 2 :(得分:1)
您也可以使用不带zip的列表理解功能来实现
l=[0, 1, 2, 3, 4, 5]
print([(l[i],l[i+1]) for i in range(0,len(l),2)])
#[(0, 1), (2, 3), (4, 5)]
答案 3 :(得分:-1)
您可以实现对Python列表理解的使用。
l = range(5)
out = [tuple(l[i: i + 2]) for i in range(0, len(l), 2)]
# [(0, 1), (2, 3), (4,)]