欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Python的zip

发布时间:2025/3/20 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Python的zip 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

       zip是Python的一个内置函数,主要用于对多个序列中相对应的元素进行配对,并合并这些序列。       (1)基本用法看下面的例子:
a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
print(list(zip(a, b, c)))输出结果:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
       zip分别将序列a,b,c中相对应的第1个、第2个、第3个元素进行了配对,并糅合成一个序列。注意:       1)zip配对的元素形成的是元组(tuple)       2)Python3中zip、map、filter等内置函数出于效率的考虑,返回的都是对象,可以通过list()转换成列表
       (2)自动截取       当传入序列的长度不同时,zip能自动以最短序列长度为准进行截取。看示例:
a = [1, 2, 3]
b = [4, 5, 6, 21, 23]
c = [7, 8, 9, 17]
print(list(zip(a, b, c)))输出结果:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]       序列a,b,c的长度分别为3,5,4。zip自动截取长度为3。
       如果要取最长序列长度为准,需要使用itertools包下的zip_longest,zip_longest将较短序列通过fillvalue为默认填充值进行填充,统一到与最长序列长度一样,示例:import itertoolsa = [1, 2, 3]
b = [4, 5, 6, 21, 23]
c = [7, 8, 9, 17]
print(list(itertools.zip_longest(a, b, c, fillvalue=0)))输出结果:[(1, 4, 7), (2, 5, 8), (3, 6, 9), (0, 21, 17), (0, 23, 0)]
       序列a,b,c的长度分别为3,5,4。zip_longest自动截取长度为5,长度不满5的使用fillvalue=0进行填充。            (3)常用于列表推导式       zip常用于列表推导式或字典推导式,用于糅合多个序列。names = ['Rose', 'Lisa', 'Michael', 'Jack', 'Tony']
scores = [4.5, 4.2, 4.0, 5.0, 3.5]
d = {n: s for n, s in zip(names, scores)}
print(d)输出结果:{'Michael': 4.0, 'Tony': 3.5, 'Jack': 5.0, 'Lisa': 4.2, 'Rose': 4.5}       (4)使用*号操作符
       通过使用*号操作符,能够将zip进行反向操作。示例:a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
d = list(zip(a, b, c))
print('d=', d)
e = list(zip(*d))
print('e=', e)
输出结果:d= [(1, 4, 7), (2, 5, 8), (3, 6, 9)]e= [(1, 2, 3), (4, 5, 6), (7, 8, 9)]

总结

以上是生活随笔为你收集整理的Python的zip的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。