python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python中zip用法

zip在python中的用法小结

作者:慕城南风

Python中的zip函数是一个非常有用的工具,可以帮助我们同时处理多个可迭代对象,通过使用zip函数,我们可以将多个列表或迭代器中的元素打包成一个个元组,然后返回由这些元组组成的列表,这篇文章介绍zip在python中的用法,感兴趣的朋友一起看看吧

在Python中,zip()是一个内置函数,用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

一、基本用法

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
zipped = zip(list1, list2)  # 返回一个zip对象  
print(list(zipped))  # 将zip对象转化为列表:[(1, 'a'), (2, 'b'), (3, 'c')]

二、处理长度不一的列表

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [10, 20]
zipped = zip(list1, list2, list3)  # 返回一个zip对象  
print(list(zipped))  # 将zip对象转化为列表:[(1, 'a', 10), (2, 'b', 20)]

注意,zip()函数的结果长度取决于最短的输入列表。

三、与 * 一起使用进行解压

zipped = [(1, 'a'), (2, 'b'), (3, 'c')]
list1, list2 = zip(*zipped)
print(list1)  # (1, 2, 3)  
print(list2)  # ('a', 'b', 'c')

四、在循环中使用zip()

你可以在for循环中使用zip()函数来并行迭代多个可迭代的对象。如下例:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for i, letter in zip(list1, list2):
    print("Number {} corresponds to the letter {}".format(i, letter))

这段代码会输出:

Number 1 corresponds to the letter a  Number 2 corresponds to the letter b  Number 3 corresponds to the letter c

五、与 itertools.zip_longest 的区别

Python的 itertools 模块提供了一个 zip_longest 函数,该函数可以处理长度不一的迭代器。它与 zip 函数的主要区别在于,当输入迭代器的长度不一致时,zip_longest 会用一个指定的值(默认为None)来填充较短的迭代器。如下例:

import itertools
list1 = [1, 2, 3]
list2 = ['a', 'b']
for i in itertools.zip_longest(list1, list2):
    print(i)

这段代码会输出:(1, 'a')(2, 'b')(3, None)

六、注意事项

七、总结

总的来说,Python中的zip函数是一个非常有用的工具,可以帮助我们同时处理多个可迭代对象。通过使用zip函数,我们可以将多个列表或迭代器中的元素打包成一个个元组,然后返回由这些元组组成的列表。这使得我们可以更方便地处理多个数据集,并可以在循环中并行迭代它们。

到此这篇关于zip在python中的用法详解的文章就介绍到这了,更多相关python中zip用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文