zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。在python3中,zip函数返回一个迭代器。
如果zip函数中的参数前面有一个*,相当于解压缩,变成打包前的列表形式。
代码如下
1 a = [1, 2, 3] 2 b = [3, 4, 5] 3 c = [6, 7, 8, 9, 10] 4 d = zip(a, b) 5 e = zip(a, c) 6 f = zip(a, b, c) 7 print(list(d)) 8 print(list(e)) 9 print(list(f)) 10 f = zip(a, b, c) 11 g = zip(*f) 12 print(list(g))
运行结果如下图。我第十行之所以要重新打包是因为,代码第九行运行完后,f已经迭代到了末尾,迭代器指针指向了末尾,如果没有第十行,那么11行的f是一个空列表。