Python如何遍历列表嵌套字典 解决重复输出与类型报错问题
问题原因分析
第一次代码重复输出的原因
每个人员字典包含4个键(first_name/last_name/age/city),内层循环遍历字典键时,每遍历1个键就会执行一次打印逻辑,所以每个名字重复输出4次,这层内层循环完全是多余的。
第二次代码报错的原因
遍历字典items()返回的是(键名, 键值)元组,你代码里的person_info是对应键的字符串值(比如'joe'/'schmoe'这类字符串),用字典的键索引方式操作字符串自然会触发TypeError: string indices must be integers报错。
正确实现代码
只需要保留外层循环遍历人员列表,每次循环直接从拿到的单个人员字典中取出姓名拼接即可:
for person in people: # 用f-string拼接更简洁,也可以替换为加号拼接的写法 full_name = f"{person['first_name']} {person['last_name']}" print(full_name)
运行后输出结果:
joe schmoe angela yee erykah badu
扩展优化建议
如果后续需要多次使用人员全名,可以提前给每个人员字典新增full_name字段,避免重复拼接逻辑:
for person in people: person['full_name'] = f"{person['first_name']} {person['last_name']}" # 后续直接调用字段即可 print(person_0['full_name'])
内容的提问来源于stack exchange,提问作者nick loves_data
相关产品推荐
相关产品推荐

