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

遍历字典时值重复输出的问题求助

遍历字典时值重复输出的问题求助

嗨,别担心,作为编程新手遇到这种小问题太正常啦😉

咱们先看看你代码里的问题出在哪:你在if person in fav_lan:的代码块里多写了一个完全没必要的循环——for language in fav_lan.values(),这个循环会遍历字典里所有的7个语言值,所以每找到一个在字典里的名字,就会跟着执行7次print(fav_lan[person]),这就是语言重复打印7次的核心原因。

其实你根本不需要这个额外的循环,当你确认person在字典fav_lan里的时候,直接通过fav_lan[person]就能精准拿到这个人对应的语言值啦!

给你修正后的完整代码:

fav_lan={"Zuza":"Python","Ago":"C",
"Jessie":"Python","Maria":"Java",
"Lou":"Python","Edo":"Java","Yvonne":"C"}

p_list=["Jenny","Lou","Zuza","Robert","Ago","Adam"]

for person in p_list:
    if person in fav_lan:
        # 直接通过键获取对应的值,不需要额外循环
        print(f"Hi {person}, thank you for voting, your favorite language is: {fav_lan[person]}")
    else:
        print(f"Hi {person}, you need to vote first")

另外你提到用set()尝试解决,结果只把重复的语言变成3种,但这其实没触碰到问题本质——因为你本来就不需要遍历所有语言值,只需要针对当前的person取出对应的值就够了呀。

慢慢摸索,新手阶段踩这些小坑都是成长的必经之路哦!

备注:内容来源于stack exchange,提问作者Zuzanna Norek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:28:08