【问题标题】:How to iterate over list of values of one key in a dictionary如何遍历字典中一个键的值列表
【发布时间】:2026-02-05 20:20:06
【问题描述】:

我想比较 2 个不同字典的匹配键的值(浮点元组和布尔变量)以打印出可能的差异。键是 ID,我想确保两个字典中的值相同(代表某些货币金额)。

 dict1 = {'4000' : (100.05, 200.08, 300.96, True), '1234': (39.45,1200.09,208.34, True)}
 dict2 = {'4000' : (100.05, 200.08, 400.96, True), '1234': (39.45,1205.09,208.34, True)}

我想要的是比较相同索引处的值(100.05 == 100.05?200.08 ==200.08?300.96 == 400.96?等等)。然后我想打印出差异(如果存在):

'Difference: Third Number, +100'

非常感谢。

【问题讨论】:

  • 你有没有尝试过一个简单的比较:like dict1['4000'] == dict2['4000']
  • 你的意思是所有的值,一个特定的值,只有公共键的值?在所有情况下,答案可能都是一个基本的“去做”。
  • 你尝试了什么?你想知道元组的差异还是只是比较它们是否相等?元组也不是列表。
  • @KennyOstrom 我想比较位于同一索引处的公共键的值
  • 连续做两件简单的事情并不会让它们变得特别。去做就对了。你知道如何迭代字典。你知道如何迭代元组。正常使用 ==。如果您发布一些代码,并且如果该代码存在问题,那么每个人都会很乐意指出它。

标签: python loops dictionary key-value


【解决方案1】:

您尚未确切指定所需的输出,但假设我们的值的长度相同,您可以运行如下内容:

for k in dict1.keys():
   for i in range(len(dict1[k])):
       if dict1[k][i] != dict2[k][i]:
          print(k, i, dict1[k][i], dict2[k][i])

【讨论】:

    【解决方案2】:
    for key in list(dict1):
        val1 = dict1[key]
        val2 = dict2[key]
        for i in range(len(val1)):
            print(val1[i] == val2[i])
    

    【讨论】: