zip() 函数用来把多个可迭代对象中的元素压缩到一起,返回一个可迭代的 zip 对象,其中每个元素都是包含原来的多个可迭代对象对应位置上元素的元组,最终结果中包含的元素个数取决于所有参数序列或可迭代对象中最短的那个。
可以这样理解这个函数,把多个序列或可迭代对象中的所有元素左对齐,然后像拉拉链一样往右拉,把所经过的每个序列中相同位置上的元素都放到一个元组中,只要有一个序列中的所有元素都处理完了就不再拉拉链了,返回包含若干元组的 zip 对象。
zip对象只能遍历一次。
print(zip([1, 2, 3], ('a', 'b', 'c', 'd')))
print(list(zip([1, 2, 3], ('a', 'b', 'c', 'd'))))
print(list(zip('efghij', [2, 3, 5, 8]))) # 压缩字符串和列表
print(list(zip('python'))) # 对一个序列也可以进行压缩
print(list(zip('123', ['a', 'b', 'c'], {'@', '#', '*'}))) # 压缩三个序列
for i in zip('efg', range(3)): # zip对象是可迭代的
print(i)
Q = zip('123', ['a', 'b', 'c'], {'@', '#', '*'})
print(list(Q))
print(list(Q)) # zip对象只能遍历一次