【发布时间】:2013-04-23 07:26:37
【问题描述】:
我正在创建一个 python 程序。
我有一个清单:
[3, 28, 25, 126, 25, 127]
我怎样才能把它变成一个元组列表,所以列表变成:
[(3,28),(25,126),(25,127)]
它连接两个元素并组成一个元组。
【问题讨论】:
-
在你问下一个问题之前,你应该做一些研究。如果这不能回答你的问题,那么在你提问之前try something yourself。
我正在创建一个 python 程序。
我有一个清单:
[3, 28, 25, 126, 25, 127]
我怎样才能把它变成一个元组列表,所以列表变成:
[(3,28),(25,126),(25,127)]
它连接两个元素并组成一个元组。
【问题讨论】:
>>> L = [3, 28, 25, 126, 25, 127]
>>> zip(L[0::2], L[1::2])
[(3, 28), (25, 126), (25, 127)]
这将创建两个列表切片,步长为 2 - 一个从索引 0 开始,第二个从索引 1 开始。zip 然后创建具有每个可迭代元素的元组。
【讨论】:
>>> L = [3, 28, 25, 126, 25, 127]
>>> zip(*[iter(L)]*2)
[(3, 28), (25, 126), (25, 127)]
【讨论】:
[iter(L)]*2 创建了 2 个指针(我不会称它们为标签,因为它们没有命名,只是在列表中索引) 到同一个迭代器实例,因此在执行 zip 时,会调用同一个迭代器实例来生成元组中的两个元素,默认情况下会导致所需的分组。