将平面列表转换为二元组

6 投票
3 回答
1757 浏览
提问于 2025-04-17 16:02

有没有一种单行代码可以做到以下这些事情:

input = ['this', 'is', 'a', 'list']
output = [('this', 'is'), ('a', 'list')]

我最开始的想法是先创建两个列表,然后把它们合并在一起。这样的话需要三行代码。

这个列表的元素数量是偶数。

3 个回答

4
>>> input = ['this', 'is', 'a', 'list']

>>> [(input[i], input[i + 1]) for i in range(0, len(input), 2)]
[('this', 'is'), ('a', 'list')]

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

7
In [4]: zip(*[iter(lst)]*2)
Out[4]: [('this', 'is'), ('a', 'list')]

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

9

这段内容非常简短:

zip(input, input[1:])[::2]

撰写回答