Python中如何用一个字典的值对比另一个字典的值并输出结果
解决字典值对比的问题
首先,咱们先看看你代码里的问题:
你内层循环写的是for i, j in dict2,这会直接触发ValueError,因为遍历字典默认只会拿到键(比如'a'、'b'),单个字符串没法拆成i和j两个变量,系统就会报错说“预期2个值,但只拿到1个”。
另外,你的循环逻辑也搞反啦——你需要用dict2的值去和dict1的值对比,所以应该外层遍历dict2的键值对,内层遍历dict1的键值对,然后判断大小。
这里是修正后的代码:
dict1 = {'Canada': 2.5, 'UK': 3.7, 'USA': 9.0} dict2 = {'a': 7, 'b': 2} # 遍历dict2的每个键值对(k是键,v是对应的值) for k, v in dict2.items(): # 遍历dict1的每个键值对(country是国家名,num是对应的值) for country, num in dict1.items(): # 判断dict2的值是否大于dict1的值 if v > num: print(f"{k} is larger than {country}.")
运行这段代码后,输出就是你想要的:
a is larger than Canada. a is larger than UK.
简单解释下:
- 用
dict.items()才能同时拿到字典的键和值,这是遍历字典键值对的正确方式; - 加入了
if判断,只输出满足“dict2的值更大”的情况; - 用了f-string来格式化输出,比拼接字符串更简洁清晰。
内容的提问来源于stack exchange,提问作者user4490696
相关产品推荐
相关产品推荐

