Python字典列表练习问题:Sarah的语言值无法正确输出求解决
问题解决:字典嵌套列表遍历的变量错误
你的代码中,else分支使用的l变量仅在if分支的内层循环中定义。当处理Sarah(对应语言列表长度为1)时,l实际是上一次循环的残留值(比如处理Phil时的最后一个元素haskell),因此无法正确显示Sarah的语言。
修正后的代码如下:
favoriteLanguages = { 'jen': ['python', 'ruby'], 'sarah': ['c'], 'edward': ['ruby', 'go'], 'phil': ['python', 'haskell'] } for name, language in favoriteLanguages.items(): if len(language) > 1: print(f"{name.title()}'s favorite languages are:") for l in language: print(f'\t{l.title()}') else: # 直接取列表唯一元素,无需依赖外层循环的残留变量 print(f"{name.title()}'s favorite language is {language[0].title()}.")
核心修正点:将else分支里的l替换为language[0],因为当语言列表长度为1时,直接访问索引0就能获取到唯一的语言元素,彻底避免变量残留问题。
内容的提问来源于stack exchange,提问作者Emman
相关产品推荐
相关产品推荐

