2015-12-06 84 views
-1

我要添加字符串字典鍵是這樣的:我如何添加到Python字典值使用字符串鍵

x = "%s-%s-%s %s:%s:00"%(dt.year,dt.month,dt.day,dt.hour,dt.minute) 
dict[x] +=a1 

但它給了我這樣的錯誤:

KeyError: '2015-11-26 8:47:00' 

如果我嘗試print type(x)它打印str

但如果我試試這個:

dict = {} 
x = "abc" 
dict[x] = 1 
print dict 

打印到這一點:

{'abc': 1} 

我不明白有什麼區別。

回答

0

第一個錯誤是,您將您的字典命名爲dict。這個名字的 已被使用;這是字典類型的名稱。覆蓋這樣的現有名稱 稱爲「陰影」。不要這樣做,它會弄糟 你。您正在使用+=。這意味着已經有一個與密鑰相關的值 ,該值可以遞增。如果該密鑰不在dict 尚未,您會收到KeyError

您可能想要設置默認值零。這可以通過各種方式以 完成。最簡單的是:

d[x] = d.get(x, 0) + a1 

另見collections標準庫,其中有一個defaultdict 類型。

+0

非常感謝你。你是真正的生活保護者,因爲我沒有給我的字典命名。當我在這裏複製代碼時,我改變了它。但是再次感謝你的警告。 –

+0

@ M.Witney如果有幫助,請隨時接受答案:) –

相關問題