我想添加这样的字符串字典键:
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 :(得分:0)
第一个错误是您将字典命名为dict
。那个名字
已被使用;它是字典类型的名称。覆盖一个
像这样的现有名称被称为" shadowing"。不要这样做,它会变得混乱
你了。
您正在使用+=
。这意味着已经有一个值相关联
使用密钥,可以递增。如果该密钥不在dict
中
但是,你得到KeyError
。
您可能希望将默认值设置为零。这可以在 各种方式。最简单的是:
d[x] = d.get(x, 0) + a1
另请参阅collections
标准库,其中包含defaultdict
类型。