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

为何Python列表无法逐个对应打印?嵌套循环问题解析

问题原因与解决方法

问题原因

你写的嵌套for循环是核心问题:外层循环遍历姓名列表allData的每一项,内层循环遍历日期列表tanggaldata的所有项,这就导致每个姓名都会和所有日期组合打印,完全不符合“一一对应”的需求。

解决方法

有三种简单的修正方式,按需选择:

方式1:用zip()函数配对对应元素

直接通过zip()把两个列表的对应元素绑定,一次遍历就能输出正确的配对:

# 替换原有的嵌套循环
for name, tanggal in zip(allData, tanggaldata):
    print(f"{name} lahir pada tanggal {tanggal}")

方式2:通过索引遍历取对应元素

利用两个列表长度一致的特点,用索引定位对应位置的姓名和日期:

# 替换原有的嵌套循环
for i in range(len(allData)):
    print(f"{allData[i]} lahir pada tanggal {tanggaldata[i]}")

方式3:一开始就存储配对数据(更推荐)

不用分开存两个列表,直接把姓名和日期作为元组存入同一个列表,逻辑更清晰,避免后续配对出错:

# 修改输入部分的代码
all_data = []
while True:
    name = input("input your name (if done input DONE) : ")
    tanggal = input("input your date (if done input DONE) : ")
    if name == "DONE" or tanggal == "DONE":
        break
    # 把姓名和日期作为元组存入同一个列表
    all_data.append( (name, tanggal) )

# 打印部分
for name, tanggal in all_data:
    print(f"{name} lahir pada tanggal {tanggal}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:25:23