跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

如何在 Python 中利用 zip() 函数同时遍历两个长度相等的列表数据

zip()是最简洁Pythonic的双列表配对方法,按位置打包成元组迭代器,以最短列表为准;支持多列表同时遍历,内存高效但仅可迭代一次。 直接用
zip()
把两个列表“拉链式”配对,再用
for
循环逐个取值,是最简洁、最 Pythonic 的做法。 基础用法:一次获取两个列表的对应元素
zip()
会把多个可迭代对象(比如列表)中**相同位置**的元素打包成元组,返回一个 zip 对象(迭代器)。只要两个列表长度相等,就能一一对应。 例如:
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]

for name, age in zip(names, ages):
print(f"{name} is {age} years old")
输出: Alice is 25 years old Bob is 30 years old Charlie is 35 years old 注意 zip() 返回的是迭代器,不是列表 它只在循环或显式转换时才生成数据,节省内存。如果需要重复使用结果,得转成列表: 立即学习 “ Python免费学习笔记(深入) ”;
list(zip(names, ages))
→
[('Alice', 25), ('Bob', 30), ('Charlie', 35)]
直接多次遍历 zip 对象会“空转”,因为迭代器只能用一次 处理更长的列表时要小心长度不匹配
zip()
默认以**最短的可迭代对象为准**。如果两个列表长度不等,多出的部分会被自动忽略。 Python 3.14.3 微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。 下载 例如:
list1 = [1, 2, 3, 4]
list2 = ['a', 'b']
for x, y in zip(list1, list2):
print(x, y)
只会输出两行:
1 a
和
2 b
,后面
3
和
4
不参与。 若需按最长列表补齐,可用
itertools.zip_longest()
,并指定填充值(如
fillvalue=None
)。 扩展:同时遍历三个或更多列表也一样简单
zip()
支持任意多个参数:
names = ['Alice', 'Bob']
ages = [25, 30]
cities = ['Beijing', 'Shanghai']

for name, age, city in zip(names, ages, cities):
print(f"{name}, {age}, {city}")
只要它们长度一致,就能安全解包使用。

相关文章