我正在尝试创建一个嵌套字典,其中子字典键作为列表的其余元素。用更简单的方式解释:
所需输出:payable = { 'A':{'B':0,'C':0},'B':{'A':0,'C':0}....}
输出:payable = { 'A':{'B':0,'C':0,'A':0},'B':{'A':0,'C':0,'B':0}....}
我不需要'A'
主键下的'A'
子键。我该怎么解决?
names = ['A', 'B', 'C']
payable = dict.fromkeys(names, {})
for mainKey in payable.keys():
for subKey in names:
if(mainKey != subKey):
payable[mainKey][subKey] = 0
print(payable)
最佳答案
当您使用dict.fromkeys
创建时,所有键都在查看相同的dict
。
尝试用payable
理解创建dict
(换言之,为每个键创建新的dict
),它工作得很好:
names = ['A','B','C']
payable= {k:{} for k in names}
for mainKey in payable.keys():
for subKey in names:
if(mainKey!=subKey):
payable[mainKey][subKey]=0
print(payable)
输出:
{'A': {'B': 0, 'C': 0}, 'B': {'A': 0, 'C': 0}, 'C': {'A': 0, 'B': 0}}