今天我们说一说Python 中的 zip 函数。zip 函数可将多个可迭代对象(如列表、元组、集合或字典)合并为一个迭代器,能够简化多索引场景下的管理逻辑。
下面进行代码演示,这里准备了两个列表,分别为姓名列表与年龄列表。若要按顺序同时遍历这两个列表,就需要维护两个独立的索引。
最终输出效果如下:张三 30岁、李四 35 岁、王五 50 岁。可以看出,手动管理多个独立索引的方式十分繁琐。
# -*- Coding:UTF-8 -*-'''====================================================@File : 20250509-zip函数.py@IDE : PyCharm 2024.3 Professional Edition@Version : Python 3.10.10@WebChat : victory54610@Date : 2026/5/9 17:51===================================================='''names = ['张三','李四','王五']ages = [30,35,50]for i in range(len(names)): name = names[i] age = ages[i] print(f'{name} is {age} years old.')
这里提供另一种解决思路。我们可以借助 zip 函数对这两个列表及其他可迭代对象进行打包处理。
具体实现方式为创建一个对象,将其命名为 data。通过调用 zip 函数的方式赋值,函数的其中一个参数为姓名列表,另一个参数为年龄列表。
此时 data 即为一个对象,确切地说,是存放在内存指定地址中的 zip 对象。该对象内部以元组的形式存储每一组配对数据。对于 zip 函数返回的这个 zip 对象,我们可以将其强制转换为列表、元组或集合类型。
若将 zip 对象强制转换为列表,将得到一个由两两配对元素构成的二维列表。
names = ['张三','李四','王五']ages = [30,35,50]data = list(zip(names,ages))print(data)
我们可以通过 for 循环遍历该 zip 对象。在遍历 zip 对象的过程中,可对其进行解包操作,从而分别获取每一组对应的姓名与年龄。
names = ['张三','李四','王五']ages = [30,35,50]data = zip(names,ages)for name,age in data: print(f'{name} is {age} years old.')
zip 函数支持对两个及以上的可迭代对象进行打包操作。我们新增一个职业列表 jobs,其中张三的职业为厨师,李四无业,王五的职业为收银员。将该职业列表一并纳入打包范围,后续对打包结果执行解包操作,最后完成打印输出。
names = ['张三','李四','王五']ages = [30,35,50]jobs = ['厨师','无业','收银员']data = zip(names,ages,jobs)for name,age,job in data: print(f'{name}今年 {age} 岁,职业是{job}')
以上就是 zip 函数的相关介绍。它能够将多个可迭代对象合并为一个迭代器,极大简化了多索引场景下的管理工作。
今天的分享就到这儿啦,非常感谢您对“Python SQL审天下”公众号的关注和点赞。如果您觉得我的公众号能给您带来一丝丝的收获,请多多转发给您的朋友圈,让更多的人看到并了解。也许您不经意间的点赞和转发,会给他人带来独特的体验和感受。