zip在python中的用法小结,


目录
  • 一、基本用法
  • 二、处理长度不一的列表
  • 三、与 * 一起使用进行解压
  • 四、在循环中使用zip()
  • 五、与 itertools.zip_longest 的区别
  • 六、注意事项
  • 七、总结

在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)

六、注意事项

  • zip对象只能迭代一次。也就是说,如果你尝试再次迭代一个已经迭代过的zip对象,将会得到一个空列表。
  • zip对象不支持索引操作。也就是说,你不能直接通过索引来访问zip对象中的元素。
  • zip对象不支持切片操作。也就是说,你不能对zip对象进行切片操作来获取其中的一部分元素。

七、总结

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

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

您可能感兴趣的文章:
  • python中zip函数用法详解(全)
  • python内置函数zip详解
  • python 内置函数-range()+zip()+sorted()+map()+reduce()+filter()
  • python中zip()函数遍历多个列表方法
  • Python中zip函数如何使用
  • python中的 zip函数详解及用法举例
  • Python中zip()函数的简单用法举例
  • python3中zip()函数使用详解
  • Python zip()函数用法实例分析
  • 浅谈Python中的zip()与*zip()函数详解
  • Python中zip()函数用法实例教程

评论关闭