Python 有人能解释一下这是如何在字典中循环的吗?

Python 有人能解释一下这是如何在字典中循环的吗?,python,dictionary,Python,Dictionary,我有两本字典,我想比较一下,看看两者有什么不同。我感到困惑的是指令。这个有名字吗 一切都很好,我真的不明白它为什么工作,或者它在做什么 x = {"#04": 0, "#05": 0, "#07": 0, "#08": 1, "#09": 0, "#10": 0, "#11": 1, "#12": 1, "#14": 1, "#15": 1, "#17": 0, "#18": 1, "#19": 1, "#20": 1} y = {"#04": 1, "#05": 0, "#07": 0, "

我有两本字典,我想比较一下,看看两者有什么不同。我感到困惑的是
指令。这个有名字吗

一切都很好,我真的不明白它为什么工作,或者它在做什么

x = {"#04": 0, "#05": 0, "#07": 0, "#08": 1, "#09": 0, "#10": 0, "#11": 1, "#12": 1, "#14": 1, "#15": 1, "#17": 0, "#18": 1, "#19": 1, "#20": 1}

y = {"#04": 1, "#05": 0, "#07": 0, "#08": 1, "#09": 0, "#10": 0, "#11": 1, "#12": 1, "#14": 1, "#15": 0, "#17": 1, "#18": 1, "#19": 0, "#20": 1}

dict = {k: x[k] for k in x if y[k] != x[k]}

list = []

for k, v in dict.items()
  if v==0:
    difference = k + ' became ' + '0'
    list.append(difference)
  else:
    difference = k + ' became ' + '1'
    list.append(difference)

print(list)

它应该打印
['#04变成0'、#15变成1'、#17变成0'、#19变成1']
,但我不明白
dict
是如何在x和y字典中循环的。

实现的过程是比较两个字典,假设它们都有相同的键(可能
y
会有更多的条目)

为了快速进行比较并方便下一个代码块,他们决定生成一个只包含具有不同值的键的字典

为了生成这样的词典,他们使用“词典理解”,这是非常有效的

现在,这个构造:

d = {k: x[k] for k in x if y[k] != x[k]}
可以重写为:

d = {}
for k,v in x:          # for each key->value pairs in dictionary x
    if y[k] != x[k]:   # if the corresponding elements are different
        d[k] = x[k]    # store the key->value pair in the new dictionary

您可以将上面的
x[k]
替换为
v

它被称为“字典理解”,请查找。另外,不要使用变量名,例如
dict
list
,因为它们会屏蔽内置名称。
dict
是内置名称,您不应将其用作变量。可能的