Skip to main content
 首页 » 编程设计

python之如果不存在,则向字典添加一个键,然后重命名该键

2025年05月04日16wuhuacong

假设我有一个听写列表:

ls = [{'id': 1, 'a1': 2, 'a2': 3}, {'id':2, 'a2':4}, {'id':3, 'a2':5}] 

a1 在某些字典中不存在

我想在这些缺少 a1 的字典中将 a1 设置为 0,并将键名 a1 更改为 b1 在所有字典中。这是我想出的代码

for l in ls: 
    l.setdefault('a1', 0) 
    l['b1'] = l.pop('a1') 

我想知道是否可以提高它的效率,因为我需要将这段代码运行数百万次。如有任何改进,我们将不胜感激。

请您参考如下方法:

这里有一点改进,它利用了 dict.pop() 可以接受一个参数,如果键不在字典中则作为默认值返回:

ls = [{'id': 1, 'a1': 2, 'a2': 3}, {'id':2, 'a2':4}, {'id':3, 'a2':5}] 
for d in ls: 
    d['b1'] = d.pop('a1', 0) 
 
>>> ls 
[{'a2': 3, 'id': 1, 'b1': 2}, {'a2': 4, 'id': 2, 'b1': 0}, {'a2': 5, 'id': 3, 'b1': 0}]