将列表转换为每两个元素的元组列表

Edm*_*und 6 python

如何将列表转换为元组列表?元组由列表的偶数和奇数索引处的元素组成.例如,我有一个列表[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)
Run Code Online (Sandbox Code Playgroud)

cs9*_*s95 11

有趣的是iter:

it = iter(l)
zip(it, it)
# [(0, 1), (2, 3), (4, 5)]
Run Code Online (Sandbox Code Playgroud)

您还可以在2的步幅中切片zip:

list(zip(l[::2], l[1::2]))
# [(0, 1), (2, 3), (4, 5)]
Run Code Online (Sandbox Code Playgroud)