You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两个Python列表中的元素一一配对?

如何实现Python列表对应位置元素一一配对输出?

问题场景

现有两个Python列表:

students = ['John', 'Tom', 'Toby', 'Sandy', 'Shawn']
marks = [77, 79, 80, 71, 17]

原本用嵌套for循环的代码会输出所有元素的全组合:

students = ['John', 'Tom', 'Toby', 'Sandy', 'Shawn']
marks = [77, 79, 80, 71, 17]
for student in students:
    for mark in marks:
        print(f'{student}: {mark}')

现在需要改成对应位置元素一一配对的输出,得到如下结果:

John: 77
Tom: 79
Toby: 80
Sandy: 71
Shawn: 17

方法1:用zip()函数(推荐)

zip()函数会自动把多个可迭代对象对应位置的元素打包成元组,直接遍历这些元组就能实现一一配对:

students = ['John', 'Tom', 'Toby', 'Sandy', 'Shawn']
marks = [77, 79, 80, 71, 17]

for student, mark in zip(students, marks):
    print(f'{student}: {mark}')

如果两个列表长度不一样,zip()会以较短的列表为准停止配对。要是需要处理长度不一致的场景,可以导入itertools模块用zip_longest()方法。

方法2:通过索引遍历

如果想直观理解索引对应关系,也可以用range()生成索引,再通过索引访问两个列表的元素:

students = ['John', 'Tom', 'Toby', 'Sandy', 'Shawn']
marks = [77, 79, 80, 71, 17]

for i in range(len(students)):
    print(f'{students[i]}: {marks[i]}')

注意:这种方法要求两个列表长度必须一致,不然会出现索引越界错误。


内容的提问来源于stack exchange,提问作者Anuj Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 06:50:32