Python字典值迭代代码问题:仅输出首个值,求修正方法
问题分析与修正
你的代码存在几个核心问题:
- 提前终止函数:
return result写在第一个循环内部,导致遍历到第一个字典值就直接返回,后续列表完全没机会被处理。 - 冗余嵌套循环:
for i in range(1,4)完全没必要,字典的每个值本身就是完整的目标列表,不需要循环三次重复拼接。 - 格式缺失换行:直接拼接字符串会让所有列表连在一起,不符合预期的逐行输出要求。
修正后的代码
def countries(countries_dict): result = "" # 遍历字典的所有值(每个值都是一个国家列表) for country_list in countries_dict.values(): # 将列表转为字符串后添加换行符,拼接到结果中 result += str(country_list) + "\n" # 移除最后多余的换行符后返回结果 return result.strip() print(countries({"Africa": ["Kenya", "Egypt", "Nigeria"], "Asia":["China", "India", "Thailand"], "South America": ["Ecuador", "Bolivia", "Brazil"]}))
运行结果
['Kenya', 'Egypt', 'Nigeria'] ['China', 'India', 'Thailand'] ['Ecuador', 'Bolivia', 'Brazil']
更简洁的替代写法(直接输出)
如果不需要返回字符串,而是直接打印结果,也可以用这种方式:
def countries(countries_dict): for country_list in countries_dict.values(): print(country_list) countries({"Africa": ["Kenya", "Egypt", "Nigeria"], "Asia":["China", "India", "Thailand"], "South America": ["Ecuador", "Bolivia", "Brazil"]})
内容的提问来源于stack exchange,提问作者EdBoi4
相关产品推荐
相关产品推荐

