如何将字典中值最大的键存入列表?现有代码返回空列表求修正
问题解决方法
你的代码有三个核心问题,导致无法得到预期结果:
- 遍历对象错误:你遍历的是字典的
values(),拿到的是数值而非城市名称(字典的key),根本无法获取要存入列表的城市名; - 判断逻辑错误:
city in city_dict.values() == max_count的运算顺序会先判断city_dict.values() == max_count(结果为布尔值False),再判断city in False,这永远不成立; - 列表赋值错误:
max_city = city会直接覆盖列表变量,而非往列表中添加元素,应该用append()方法。
正确代码实现
你已经正确获取了max_count,只需要遍历字典的键值对,将符合条件的城市名加入列表即可:
# 初始化空列表 max_city = [] # 遍历字典的键值对(城市名: 数值) for city_name, count in city_dict.items(): if count == max_count: max_city.append(city_name)
如果不想用items(),也可以遍历字典的key,再通过key取对应数值:
max_city = [] for city_name in city_dict: if city_dict[city_name] == max_count: max_city.append(city_name)
运行后,max_city就会是['Shanghai'],符合预期。
额外优化(可选)
你获取max_count的代码可以用Python内置的max()函数简化,无需循环:
max_count = max(city_dict.values())
这属于Python内置功能,不需要导入任何额外模块。
内容的提问来源于stack exchange,提问作者prina sikowitz
相关产品推荐
相关产品推荐

