我有兩本字典,我想比較一下,看看兩者有什么不同。我感到困惑的地方是dict. 有這個名字嗎?一切正常,我只是不明白它為什么有效或它在做什么。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)它應(yīng)該打印,['#04 became 0', '#15 became 1', '#17 became 0', '#19 became 1']但我不明白dict循環(huán)遍歷 x 和 y 字典的工作原理。
1 回答

小怪獸愛吃肉
TA貢獻1852條經(jīng)驗 獲得超1個贊
執(zhí)行的過程是比較兩個字典,假設(shè)它們具有相同的鍵(y可能有更多條目)。
為了快速進行比較,并方便下一個代碼塊,他們決定生成一個字典,其中只包含具有不同值的鍵。
為了生成這樣的字典,他們使用了“字典理解”,這是非常有效的。
現(xiàn)在,這個構(gòu)造:
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上面的代替。
添加回答
舉報
0/150
提交
取消