zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
我们可以使用 list() 转换来输出列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
#!/usr/bin/env python
a = [100, 200, 300]
b = ['Beijing', 'Shanghai', 'Nanjing']
for data in zip(a, b):
print(data)
# (100, 'Beijing')
# (200, 'Shanghai')
# (300, 'Nanjing')
print(zip(a, b))
# <zip object at 0x000001CFC7422E88>
print(list(zip(a, b)))
# [(100, 'Beijing'), (200, 'Shanghai'), (300, 'Nanjing')]
x, y = zip(*zip(a, b))
print(x)
# (100, 200, 300)
print(y)
# ('Beijing', 'Shanghai', 'Nanjing')
输出结果:
(100, 'Beijing')
(200, 'Shanghai')
(300, 'Nanjing')
<zip object at 0x000001CFC7422E88>
[(100, 'Beijing'), (200, 'Shanghai'), (300, 'Nanjing')]
(100, 200, 300)
('Beijing', 'Shanghai', 'Nanjing')
[Finished in 0.3s]