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

发布于 2021-02-02 23:17:15

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)工作如何?如果用更冗长的代码编写,它将是什么样?

关注者
0
被浏览
98
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    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)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看