如何删除dicts列表中特定键的所有项?

igo*_*gue 0 python

我试图根据他们的密钥删除一些字典,这是我的代码:

d1 = {'a': 1, 'b': 2}
d2 = {'a': 1}

l = [d1, d2, d1, d2, d1, d2]

for i in range(len(l)):
    if l[i].has_key('b'):
        del l[i]['b']

print l
Run Code Online (Sandbox Code Playgroud)

输出将是:

[{'a': 1}, {'a': 1}, {'a': 1}, {'a': 1}, {'a': 1}, {'a': 1}]
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

Dan*_*nra 16

d1 = {'a': 1, 'b': 2}
d2 = {'a': 1}
l = [d1, d2, d1, d2, d1, d2]
for d in l:
    d.pop('b',None)
print l
Run Code Online (Sandbox Code Playgroud)