Python嵌套字典遍历代码输出结果不完整如何解决?
问题原因
- Python 依靠缩进判定代码块的从属关系,你编写的2行打印用户全名、位置的
print语句,没有缩进纳入for循环的代码块范围。 - 这两行代码只会在
for循环遍历完所有用户后执行一次,此时full_name、location两个变量存储的是最后一次循环(对应mcurie用户)的赋值结果,因此只会输出最后一位用户的信息,首个用户的相关内容不会被打印。
修复方案
调整两行print语句的缩进,将其纳入for循环内部即可,修正后的代码如下:
users = { 'aeinstein' : { 'first': 'albert', 'last': 'einstein', 'location': 'princeton', }, 'mcurie': { 'first': 'marie', 'last': 'curie', 'location': 'paris', }, } for username, user_info in users.items(): print(f"\nUsername: {username}") full_name = f"{user_info['first']} {user_info['last']}" location = user_info['location'] # 以下两行缩进对齐循环内的其他代码,纳入循环块 print(f"\tFull name: {full_name.title()}") print(f"\tLocation: {location.title()}")
修正后会正常输出两位用户的全部信息,输出结果如下:
Username: aeinstein Full name: Albert Einstein Location: Princeton Username: mcurie Full name: Marie Curie Location: Paris
内容的提问来源于stack exchange,提问作者George Bofi
相关产品推荐
相关产品推荐

