目录
前言:
zip() 函数简介
运作过程:
应用实例
1.有序序列结合
2.无序序列结合
3.长度不统一的情况
前言:
家人们,看到标题应该都不陌生了吧,我们都知道压缩包文件的后缀就是zip的,当然还有rar等类型,在Python中也有这么一个函数叫做zip() 函数,这个函数也是有类似的压缩功能,那下面就一起来看看吧!
zip() 函数简介
进入Python中,输入help(zip) 获取信息帮助,如图所示:
函数原型:
zip(iterable……)
说明:iterable……是表示多个可迭代对象
运作过程:
在Python中,zip() 函数可以把两个或者两个以上的可迭代对象进行聚合压缩,然后生成一个元组形式的迭代器(zip类型)并且返回,实际上就是把一些不相关的东西聚合到一起,通过另一种形式输出(这也是压缩文件的运作过程)
图解:(一般对于有序序列而已)
应用实例
1.有序序列结合
有序序列是有下标位置的,所以结果过程就是下标相同的结合为一个元组
示例1:列表与元组结合
a=[1,2,3,4,5]
b=('a','b','c','d','e')
conbine=zip(a,b) #获取到可迭代压缩对象
print(list(conbine)) #通过列表类型转换输出
#输出结果:[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]
示例2:实现两个列表同时参与循环
a=[1,2,3,4,5]
b=['a','b','c','d','e']
conbine=zip(a,b)
for i,j in conbine: #通过循环输出可迭代对象
print(i,j)
# 1 a
# 2 b
# 3 c
# 4 d
# 5 e
示例3:range() 参与
conbine=zip(range(5),[chr(x) for x in range(65,70)])
print(list(conbine))
#输出结果:[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D'), (4, 'E')]
示例4:多个有序序列结合
a=[i for i in range(5)]
b=['a','b','c','d','e']
c=('jack','dick','john','amy','tom')
con=zip(a,b,c)
print(list(con))
#[(0, 'a', 'jack'), (1, 'b', 'dick'), (2, 'c', 'john'), (3, 'd', 'amy'), (4, 'e', 'tom')]
2.无序序列结合
示例1:集合之间的结合
a={2,1,3,4,5}
c={'a','b','c','d','e'}
con=zip(a,c)
print(list(con))
#输出结果:[(1, 'd'), (2, 'e'), (3, 'b'), (4, 'c'), (5, 'a')]
集合是无序序列的,所以在结合的过程中是随机的,没有按照位置下标一一对应
示例2:构建字典
li=['jack','dick','john']
li1=[98,88,68]
di=dict(zip(li,li1))
print(di)
#输出结果:{'jack': 98, 'dick': 88, 'john': 68}
3.长度不统一的情况
zip() 函数是一种按照下标位置一对一结合再一期的,当如果出现长度不一样的结合序列的时候,当其中一个序列结合完成了之后就结束(也就是木桶效应),取决于最短的那个
示例:
li=['jack','dick','john','amy']
a=tuple(x for x in range(10))
print(len(li),len(a)) #长度分别为:4 10
con=zip(li,a)
print(list(con))
#输出结果:[('jack', 0), ('dick', 1), ('john', 2), ('amy', 3)]
好了,这个函数就介绍了到这里就,是不是很简单呢?学会了快去实践一下吧!!
分享一张壁纸: