我正在尝试创建一个嵌套字典,其中子字典键作为列表的其余元素。用更简单的方式解释:
所需输出:
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}}

10-06 02:50