如果不存在,请将密钥添加到dict,然后重命名此密钥

Har*_*son 1 python dictionary

说我有一个dicts列表:

ls = [{'id': 1, 'a1': 2, 'a2': 3}, {'id':2, 'a2':4}, {'id':3, 'a2':5}]
Run Code Online (Sandbox Code Playgroud)

a1某些词汇中不存在的地方

我想设置a1为0,在这些类型的字典,其中a1缺失和更改密钥名称a1,以b1在所有类型的字典.这是我提出的代码

for l in ls:
    l.setdefault('a1', 0)
    l['b1'] = l.pop('a1')
Run Code Online (Sandbox Code Playgroud)

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

mha*_*wke 6

这是一个小小的改进,利用了一个事实,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}]
Run Code Online (Sandbox Code Playgroud)