Skip to main content
 首页 » 编程设计

python之如何干净地更新字典中的值

2025年05月04日23zhujiabin

我有一段代码迭代一个列表,然后根据键在字典中累积值,丑陋的部分是我需要检查键是否已经存在于字典中,如果不存在,那么我需要首先将值设置为零。

我想知道是否有更优雅的风格来实现这个:

for r in records: 
    if not d.has_key(r[0]): 
        d[r[0]] = 0 
    d[r[0]] += r[1] 

更进一步,如果值是一个列表,那么如何重写下面的代码:

for (key, value) in records: 
    if not d.has_key(key): 
        d[key] = [] 
    d[key].append(value) 

请您参考如下方法:

您可以使用内置的 dict.get获取默认值的方法,像这样

for r in records: 
    d[r[0]] = d.get(r[0], 0) + r[1] 

dict.get 的第二个参数是当键不在字典中时返回的默认值。

更好的是,您可以像这样解压值

for (key, value) in records: 
    d[key] = d.get(key, 0) + value