Python内置help()的解释
返回一个元组迭代器,其中第i个元组包含每个参数序列或可迭代对象中的第i个元素。当最短的可迭代输入耗尽时,迭代器将停止。使用单个可迭代参数,它将返回1元组的迭代器。没有参数,它将返回一个空的迭代器。
uppercase = ['A', 'B', 'C']
lowercase = ['a', 'b', 'c']
for x, y in zip(uppercase, lowercase):
print(x, y)
>>> 以下是输出结果
A a
B b
C c
可以看到zip将uppercase和lowercase同步按照迭代顺序提取元素
tip:不限于两个可迭代对象,可以添加任意多个
uppercase = ['A', 'B', 'C']
lowercase = ['a', 'b', 'c']
numbers = [1, 2, 3]
for x, y, z in zip(uppercase, lowercase, numbers):
print(x, y, z)
>>>
A a 1
B b 2
C c 3
b = ["red", "green", "blue"]
c = ["leopard", "cheetah", "jaguar"]
print(list(zip(b, c)))
>>>
[('red', 'leopard'), ('green', 'cheetah'), ('blue', 'jaguar')]
b = ["red", "green", "blue"]
f = ["strawberry", "kiwi", "blueberry"]
print(dict(zip(b, f)))
>>>
{
'red': 'strawberry', 'green': 'kiwi', 'blue': 'blueberry'}
此时你可能会意识到一个问题,如果两个可迭代输入长度不一致会怎么样?
当zip()函数遇到可迭代输入不一致时,会返回最短的那一个可迭代输入的最后一个元素后停止
uppercase = ['A', 'B', 'C', 'D', 'E']
lowercase = ['a', 'b', 'c', 'd']
numbers = [1, 2, 3]
for x, y, z in zip(uppercase, lowercase, numbers):
print(x, y, z)
>>>
A a 1
B b 2
C c 3
我们还应再来学习一下迭代(Iteration)、迭代器对象(iterable)、迭代器(iterator )的概念:
Iteration是计算机科学的通用术语。它是指对一组元素执行一项操作,一次执行一个元素。一个很好的例子是循环 -它适用于每个单独的项目,直到整个项目集运行完毕为止。
Iterable是可以遍历的对象(译者注:在Python中所有东西都是object, 比如说变量,容器,类),iterable是可以产生iterator的object。
iterator是表示数据流的对象,它一次返回一个元素的数据。它还会记住其在迭代过程中的位置。本质上,它控制应如何迭代可迭代对象。
参考自[天池大数据科研平台][Python中zip()函数的解释和可视化]-2020-02-21-https://mp.weixin.qq.com/s?src=11×tamp=1610459538&ver=2824&signature=5WcAAdljx-hd*nhQzJ3-rQpNYmtyLq5g8az3xJACGRCmajjHJnBOnndarG*suCFv-UTvwJboJqp0no4TZLeh5nuL6v1sbVRjOCEEONqJnM4Shj916NLbhOj4HygVS4GM&new=1