Python-zip()函数

时间:2021-1-18 作者:admin

Python-zip()函数的一些相关知识

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

来张更直观的图片
Python-zip()函数

zip()对象转换为列表


b = ["red", "green", "blue"]
c = ["leopard", "cheetah", "jaguar"]

print(list(zip(b, c)))

>>>

[('red', 'leopard'), ('green', 'cheetah'), ('blue', 'jaguar')]

将zip()对象转换成字典

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&timestamp=1610459538&ver=2824&signature=5WcAAdljx-hd*nhQzJ3-rQpNYmtyLq5g8az3xJACGRCmajjHJnBOnndarG*suCFv-UTvwJboJqp0no4TZLeh5nuL6v1sbVRjOCEEONqJnM4Shj916NLbhOj4HygVS4GM&new=1

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。