2016-03-06 84 views
4

我的預期目標是追加一個鍵值對的值以字典裏:附加鍵和值的鍵值對字典的Python

我有以下幾點:

crucial = {'C': {'C': 0, 'B': 1}} 
done = {} 
for each in crucial: 
    for i in each: 
     done['D'] = 0 
     print(done) 
     print(crucial[i].append(done)) 

的輸出是:

Traceback (most recent call last): 
    File "C:\Users\User\Documents\Programming Full-Stack\Python\Exercise Files\02 Quick Start\conditionals.py", line 13, in <module> 
    print(crucial[i].append(done)) 
AttributeError: 'dict' object has no attribute 'append' 
{'D': 0} 

預期輸出:

{'C': {'C': 0, 'B': 1, 'D':0}} 

因此,任何人都可以提供給我一個指導方針,將外鍵字典中的鍵值對添加到該值字段中嗎?

嘗試了不同的方法:到目前爲止,我嘗試將字典轉換爲聲明d爲[]的列表,而不是{}。我也試過把.extend替換成.append。但在這些情況中,我都沒有得到我想要的結果。

預先感謝您

+3

追加和擴展的方法列表,沒有字典。 – MarkyPython

+0

在字典上使用.update({a:b})而不是.append() – dede

回答

4

由於錯誤狀態,dict有沒有屬性append。字典對象中沒有append方法。要分配一個值,在字典中的特定鍵,它僅僅是:

d[key] = new_value 

其中NEW_VALUE就可以了,如果你想:{'a':1}

如果您想用新數據更新你的字典,您可以使用更新方法。

d.update(new_stuff) 

在你的代碼,只需改變你的追加,類似我提供的示例。我在這裏糾正它:

crucial = {'C': {'C': 0, 'B': 1}} 
done = {} 
for each in crucial: 
    for i in each: 
     done['D'] = 0 
     print(done) 
     crucial[i].update(done) 

print(crucial) 
+0

非常感謝您花時間回答我的問題。提供的答案將刪除關鍵列表的內容。我怎樣才能包含'D':0而不是替換值呢? – NellMartin

+0

啊。你可以使用更新! – idjaw

+0

@NellMartin感謝您的支持。我修好了它。試試看。讓我知道它是否適合你。 – idjaw

3

Python有一個更新功能,以增加新項目字典

crucial .update({'D':'0'}) 
+0

@NellMartin - 簡單易用,並且可以輕鬆添加任何項目到字典中。如果您對我的回答滿意,請將其標爲已回答 –

+0

非常感謝。它明確地幫助了我。我今天學到了東西! – NellMartin