Skip to main content
 首页 » 编程设计

python之dict python的奇怪行为

2025年05月04日18jackei

<分区>

我有一个 dict 代码片段,它的行为不符合预期

a = {"d1":{"a":1,"b":2,"c":4},"d2":{"a":1,"b":2,"c":4},"d3":{"a":1,"b":2,"c":4}} 
b = {"d1":{"a":1,"b":0},"d2":{"a":0,"c":4},"d3":{"a":1,"b":2,"c":4}} 
 
c = dict.fromkeys(a.keys(),{}) 
print(c) 
 
for doc in b.keys(): 
  for word in b[doc].keys(): 
    c[doc][word] = a[doc][word]*b[doc][word] 
print(c) 

输出是:

{'d1': {}, 'd2': {}, 'd3': {}} 
{'d1': {'a': 1, 'b': 4, 'c': 16}, 'd2': {'a': 1, 'b': 4, 'c': 16}, 'd3': {'a': 1, 'b': 4, 'c': 16}} 

代替:

{'d1': {}, 'd2': {}, 'd3': {}} 
{'d1': {'a': 1, 'b': 0}, 'd2': {'a': 0, 'c': 16}, 'd3': {'a': 1, 'b': 4, 'c': 16}} 

我现在很困惑,任何见解都会有所帮助。