为了账号安全,请及时绑定邮箱和手机立即绑定

Python 的内置函数 zip

标签:
Python API

Python 内置的 zip() 函数是一个实用的工具,能够将多个可迭代对象(如列表list、元组tuple、字符串str等)中的元素按顺序配对组合,生成一个新的迭代器。

基本用法

zip() 函数的语法如下:

zip(*iterables)

参数 *iterables 表示可传入多个可迭代对象。

核心特性

  1. 并行迭代zip() 会从每个可迭代对象中各取一个元素,组合成元组
  2. 长度适配:当可迭代对象长度不一致时,以最短的对象为准
  3. 迭代器返回:Python 3 中返回的是 zip 对象(迭代器),而非列表

代码示例

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]

# 基础用法
zipped = zip(names, ages)
print(list(zipped))  # 输出:[('Alice', 25), ('Bob', 30), ('Charlie', 35)]

# 处理不等长序列
scores = [85, 90]
print(list(zip(names, scores)))  # 输出:[('Alice', 85), ('Bob', 90)]

# 解压操作
zipped_data = [('Alice', 25), ('Bob', 30)]
names, ages = zip(*zipped_data)
print(names)  # 输出:('Alice', 'Bob')
print(ages)   # 输出:(25, 30)

典型应用

  1. 多序列遍历:同步迭代多个可迭代对象
  2. 字典构建:配合 dict() 快速创建字典
  3. 矩阵转置:实现二维列表的行列转换
  4. 数据聚合:将关联数据项组合成组

使用注意

  • Python 2 中 zip() 返回列表而非迭代器
  • 需处理不等长序列时,可使用 itertools.zip_longest()
  • zip() 对象为一次性迭代器,如需复用需转换为容器类型

性能优势

zip() 返回迭代器的特性使其在处理大数据集时更高效,避免一次性加载全部数据到内存。

高级应用

# 快速构建字典
keys = ['name', 'age', 'gender']
values = ['Alice', 25, 'Female']
print(dict(zip(keys, values)))  # 输出:{'name': 'Alice', 'age': 25, 'gender': 'Female'}

# 实现矩阵转置
matrix = [[1, 2, 3], [4, 5, 6]]
print(list(zip(*matrix)))  # 输出:[(1, 4), (2, 5), (3, 6)]
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消