【问题标题】:Python: How to transform a 'flat' sequence into a sequence of tuples?Python:如何将“平面”序列转换为元组序列?
【发布时间】:2023-04-01 01:56:01
【问题描述】:

例如,我需要从一维坐标列表中创建一个 2 元组列表
[1, 2, 1, 5]
需要成为[(1, 2), (1, 5)]。碰巧我已经在Activestate 找到了最快、最通用的方法,但是那里列出的代码对于相对的 Python 新手来说是不透明的:

def group3(lst, n):
    return itertools.izip(*[itertools.islice(lst, i, None, n) for i in range(n)])

谁能用英语解释这段代码的作用?在这种情况下,星号在做什么?谢谢。

【问题讨论】:

  • 查看我的answer 了解有关星号的另一个问题
  • 我可以用 Python 来解释。 itertools 是为了提高效率。将其替换为相应的内置函数,它变成了return zip(*[lst[i::n] for i in range(n)]),希望更容易理解。

标签:
python
list
forms
tuples