問題

我正在嘗試建立一個巢狀字典,其中包含子字典鍵作為列表的其餘元素.以更簡單的方式解釋它:

所需輸出:

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' sub-key下的'A' main-key.我該如何解決這個問題?

 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.

嘗試使用dict理解建立payable(換句話說,每個鍵的新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}}
 

  相同標籤的其他問題

pythonpython-3.xlistdictionary