Python中zip()函数用法及应用场景详解

 更新时间:2025年04月11日 09:23:10   作者:小小小小祥  
Python的zip()函数用于将多个可迭代对象的元素按位置组合成元组,支持不等长的可迭代对象和多个可迭代对象,这篇文章主要介绍了Python中zip()函数用法及应用场景的相关资料,需要的朋友可以参考下

Python中的 zip() 函数是一个非常有用的内建函数,用于将多个可迭代对象(例如:列表、元组、字典等)聚合成一个元组,返回由这些元组组成的对象。

1. zip()用法

1.1 基本用法

zip() 函数用于将多个可迭代对象中的元素按位置组合成元组。下面是一个基本的示例:

a = [1,2,3]
b = ["a", "b", "c"]
c = zip(a, b)
for i in c:
	print(i)

代码输出:

(1, 'a')
(2, 'b')
(3, 'c')

1.2 不等长的可迭代对象

如果输入可迭代对象长度不同,zip() 会根据最短的可迭代对象来进行压缩,多余的元素将会被丢弃:

list1 = [1, 2, 3]
list2 = ('a', 'b')
result = zip(list1, list2)
print(list(result))

代码输出:

[(1, 'a'), (2, 'b')]

可以看到,list1 中的 3 被丢弃,因为 list2 长度为 2。

1.3 多个可迭代对象

zip() 支持多个可迭代对象。可以将它们按顺序组合在一起

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [True, False, True]
result = zip(list1, list2, list3)
print(list(result))

代码输出:

[(1, 'a', True), (2, 'b', False), (3, 'c', True)]

1.4 zip和字典

如果传入的可迭代对象是字典,zip() 会按键进行配对。因此,通常会结合 dict() 使用来创建字典。

keys = ['name', 'age', 'city']
values = ['Alice', 25, 'New York']
result = zip(keys, values)
dictionary = dict(result)
print(dictionary)

代码输出:

{'name': 'Alice', 'age': 25, 'city': 'New York'}

1.5 解压zip

zip() 生成的结果是一个迭代器, 对于已经压缩的数据我们可以使用 zip(*iterables) 来进行解压缩操作

list1 = [1, 2, 3]
list2 = ('a', 'b', 'c')
result = zip(list1, list2)
# 解压
unpacked = zip(*result)
print(list(unpacked))   

代码输出:

[(1, 2, 3), ('a', 'b', 'c')]

2. zip() 应用场景

2.1 并行遍历多个序列

zip() 函数常用于并行遍历多个序列,在循环中挨个取出每一个序列中对应元素的位置

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")

2.2 构建字典

如前所述,zip() 和 dict() 结合使用可以非常方便的创建字典

keys = ['name', 'age', 'city']
values = ['Alice', 25, 'New York']
result = dict(zip(keys, values))
print(result)

2.3 用于矩阵转置

在某些情况下,zip() 可以用于矩阵转置等操作。例如,将多个行合并为列,或将多个列合并为行:

matrix = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
transposed = zip(*matrix)
print(list(transposed))

代码输出:

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

总结

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

相关文章

  • Python3如何使用多线程升程序运行速度

    Python3如何使用多线程升程序运行速度

    这篇文章主要介绍了Python3如何使用多线程升程序运行速度,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Python requests模块实例用法

    Python requests模块实例用法

    在本篇文章中小编给大家分享了关于Python requests模块实例用法,有需要的朋友们学习参考下。
    2019-02-02
  • 基于Python实现交互式文件浏览器

    基于Python实现交互式文件浏览器

    这篇文章主要为大家详细介绍了如何基于Python实现简单的交互式文件浏览器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-04-04
  • 一篇文章带你深入学习Python函数

    一篇文章带你深入学习Python函数

    这篇文章主要带大家深入学习Python函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • python中DataFrame常用的描述性统计分析方法详解

    python中DataFrame常用的描述性统计分析方法详解

    这篇文章主要介绍了python中DataFrame常用的描述性统计分析方法详解,描述性统计分析是通过图表或数学方法,对数据资料进行整理、分析,并对数据的分布状态、数字特征和随机变量之间的关系进行估计和描述的方法,需要的朋友可以参考下
    2023-07-07
  • 如何在python开发工具PyCharm中搭建QtPy环境(教程详解)

    如何在python开发工具PyCharm中搭建QtPy环境(教程详解)

    这篇文章主要介绍了在python开发工具PyCharm中搭建QtPy环境,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Python打包后的exe还原成.py的实现步骤

    Python打包后的exe还原成.py的实现步骤

    本文主要介绍了Python打包后的exe还原成.py的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 利用Python将list列表写入文件并读取的方法汇总

    利用Python将list列表写入文件并读取的方法汇总

    因为实验需要,实现了一下写入txt文件,下面这篇文章主要给大家介绍了关于如何利用Python将list列表写入文件并读取的几种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • 利用Python脚本实现自动刷网课

    利用Python脚本实现自动刷网课

    这篇文章主要介绍了利用Python脚本实现自动刷网课,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Python+Selenium+Pytesseract实现图片验证码识别

    Python+Selenium+Pytesseract实现图片验证码识别

    这篇文章主要介绍了利用Python+Selenium+Pytesseract实现图片验证码识别,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-01-01

最新评论