dcl*_*ato 0 python dictionary list slice
我有一个字典列表,如下所示:
l = [ { "a": 10, "b": 4, "c": 6 },
{ "a": 10, "b": 6, "c": 8 },
{ "a": 13, "b": 3, "c": 9 },
{ "a": 12, "b": 5, "c": 3 },
{ "a": 11, "b": 7, "c": 1 } ]
Run Code Online (Sandbox Code Playgroud)
现在,我想切片并只有一个列表,其中键a有值10,但从字典中删除键a.如下表所示:
nl = [ { "b": 4, "c": 6 },
{ "b": 6, "c": 8 } ]
Run Code Online (Sandbox Code Playgroud)
我可以通过处理l两次来做到这一点:
l[:] = [d for d in l if d.get("a") == 10]
nl = []
for c in l:
del c["a"]
nl.append(c)
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法来实现这一目标?
可能有更好的方法,但你可以做一个嵌套的字典理解:
[{k:d[k] for k in d if k!="a"} for d in l if d.get("a") == 10]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
595 次 |
| 最近记录: |