
本文介绍如何使用 python 的 `zip()` 函数将两个等长列表中相同位置的元素(如字符串与数字)拼接成新字符串,并生成结果列表,适用于数据配对、标签生成等常见场景。
在 Python 中,若需将两个列表(如 list1 = [1, 2, 3, 4] 和 list2 = ["nest", "middle", "crow", "damage"])中索引一致的元素一一配对并拼接(例如 "nest" + "1" → "nest1"),最简洁、安全且符合 Python 惯用法的方式是使用内置函数 zip()。
zip() 会将多个可迭代对象“拉链式”配对,生成一个由元组组成的迭代器:(list2[0], list1[0]), (list2[1], list1[1]), …,这正是我们所需的位置对齐机制。配合列表推导式,一行代码即可完成目标:
list1 = [1, 2, 3, 4]
list2 = ["nest", "middle", "crow", "damage"]
list3 = [f"{s}{n}" for s, n in zip(list2, list1)]
print(list3)
# 输出: ['nest1', 'middle2', 'crow3', 'damage4']⚠️ 注意事项:
- zip() 在遇到长度不等的列表时,以最短列表为准自动截断。例如若 list2 只有 3 个元素,结果仅含前 3 项,不会报错但可能丢失数据。如需严格校验长度,建议提前检查:
assert len(list1) == len(list2), "两个列表长度必须相等"
- 原问题中 AI 给出的 enumerate(list2) 方案实际生成的是 (0,"nest"), (1,"middle"), ...,拼接的是索引而非 list1 中的值,因此逻辑错误。
- 若需转为其他格式(如整数拼接后转 int,或添加分隔符),只需调整 f-string 表达式,例如:f"{s}_{n}" 或 str(s) + str(n)。
总结:zip() 是处理多列表同步遍历的首选工具——语义清晰、性能高效、不易出错。掌握它,能显著提升数据组合类任务的代码可读性与健壮性。
立即学习“Python免费学习笔记(深入)”;










