Python内置函数zip如何使用_序列组合应用示例【教程】

舞夢輝影
发布: 2025-12-18 19:51:07
原创
942人浏览过
zip是Python中用于并行遍历多个可迭代对象的内置函数,按最短序列截断式配对生成元组;支持多序列组合、zip()解包还原(如矩阵转置)、与dict/list结合构建映射或命名元组。

python内置函数zip如何使用_序列组合应用示例【教程】

zip 是 Python 中用于并行遍历多个可迭代对象的内置函数,它把多个序列中对应位置的元素“拉链式”组合成元组,返回一个 zip 对象(迭代器)。掌握 zip 的核心逻辑和常见用法,能显著简化多序列同步处理场景。

基础用法:两个序列配对

最常用的是将两个列表按索引一一配对:

names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]
for name, score in zip(names, scores):
    print(f'{name}: {score}')
# 输出:
# Alice: 85
# Bob: 92
# Charlie: 78
登录后复制

注意:zip 在遇到最短序列结束时自动停止,不会报错也不会补空值 —— 这叫“截断式配对”。

多序列组合:支持任意数量的可迭代对象

zip 可同时处理三个或更多序列,生成包含多个元素的元组:

立即学习Python免费学习笔记(深入)”;

Find JSON Path Online
Find JSON Path Online

Easily find JSON paths within JSON objects using our intuitive Json Path Finder

Find JSON Path Online 193
查看详情 Find JSON Path Online
  • 学生姓名、年龄、城市三者同步打包:
names = ['Leo', 'May', 'Tom']
ages = [20, 22, 19]
cities = ['Beijing', 'Shanghai', 'Guangzhou']
for info in zip(names, ages, cities):
    print(info)
# 输出:
# ('Leo', 20, 'Beijing')
# ('May', 22, 'Shanghai')
# ('Tom', 19, 'Guangzhou')
登录后复制

解包还原:用 *zip(*) 实现“反向 zip”

如果已有 zip 后的结果,可以用 *zip(*) 拆开还原为原始结构(常用于矩阵转置):

  • 把二维列表按列提取:
matrix = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
rows = list(zip(*matrix))
print(rows)
# 输出:[(1, 4, 7), (2, 5, 8), (3, 6, 9)] —— 相当于转置
登录后复制

原理是 *matrix 把元组列表解包成三个参数传给 zip,等价于 zip((1,2,3), (4,5,6), (7,8,9))

与 dict、list 结合的实用技巧

zip 常作为构造字典或列表的快捷工具

  • 用两个等长列表快速生成字典:
keys = ['a', 'b', 'c']
values = [1, 2, 3]
mapping = dict(zip(keys, values))  # {'a': 1, 'b': 2, 'c': 3}
登录后复制
  • 批量创建命名元组或数据类实例(配合 collections.namedtuple):
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
points = list(map(Point._make, zip([1, 2, 3], [4, 5, 6])))
# 得到 [Point(x=1, y=4), Point(x=2, y=5), Point(x=3, y=6)]
登录后复制

以上就是Python内置函数zip如何使用_序列组合应用示例【教程】的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号