请解释 Python 内置函数 zip 的用途和工作方式,并说明它返回的对象类型以及如何将其转换为常见数据结构。
考察说明
考查对 Python 内置函数 zip 的基本理解,包括其功能、返回类型和常见用法。
回答思路
- 【回答框架 1】zip 函数用于将多个可迭代对象中对应位置的元素打包成元组,返回一个迭代器。例如,zip([1,2],[3,4]) 生成 (1,3) 和 (2,4)。
- 【回答框架 2】返回的是 zip 对象,属于迭代器,只能遍历一次。如需列表或字典,可用 list(zip(...)) 或 dict(zip(...)) 转换。
- 【回答框架 3】当输入序列长度不同时,zip 以最短序列为准,多余元素被忽略。若需处理最长序列,可使用 itertools.zip_longest。
- 【回答框架 4】zip 常用于并行遍历多个列表、构建字典(如键值对组合)或矩阵转置(配合 * 解包)。
- 【关键点 1】zip 将多个可迭代对象按索引配对,返回元组迭代器。
- 【关键点 2】返回对象是迭代器,只能消费一次,需用 list 或 dict 转换。
- 【关键点 3】长度不等时截断至最短,zip_longest 可补全。
- 【关键点 4】典型用途包括并行循环、字典构建和矩阵转置。
- 【易错点 1】误以为 zip 返回列表,实际是迭代器,直接打印看不到元素。
- 【易错点 2】忽略长度不等时的截断行为,导致数据丢失。
- 【易错点 3】对迭代器多次遍历,第二次得到空结果。