2015-12-06 86 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如果有帮助,请随时接受答案:) –

相关问题