zip(* [iter(s)] * n)在Python中如何工作?

s = [1,2,3,4,5,6,7,8,9]

n = 3

zip(*[iter(s)]*n) # returns [(1,2,3),(4,5,6),(7,8,9)]

zip(*[iter(s)]*n)工作如何?如果用更冗长的代码编写,它将是什么样?

回答:

iter()是序列上的迭代器。[x] * n产生一个包含n数量的列表x,即一个长度的列表n,其中每个元素都是x。*arg将序列解压缩为函数调用的参数。因此,你要将3次相同的迭代器传递给zip(),并且每次都会从迭代器中提取一个项目。

x = iter([1,2,3,4,5,6,7,8,9])

print zip(x, x, x)

以上是 zip(* [iter(s)] * n)在Python中如何工作? 的全部内容, 来源链接: utcz.com/qa/405735.html

回到顶部