如何使用字符串键添加到Python字典值

时间:2015-12-06 16:40:46

标签: string python-2.7 dictionary

我想添加这样的字符串字典键:

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}

我不明白有什么不同。

1 个答案:

答案 0 :(得分:0)

第一个错误是您将字典命名为dict。那个名字 已被使用;它是字典类型的名称。覆盖一个 像这样的现有名称被称为" shadowing"。不要这样做,它会变得混乱 你了。

您正在使用+=。这意味着已经有一个值相关联 使用密钥,可以递增。如果该密钥不在dict中 但是,你得到KeyError

您可能希望将默认值设置为零。这可以在 各种方式。最简单的是:

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

另请参阅collections标准库,其中包含defaultdict 类型。