使用lambda和map从字典列表中删除键/值

web*_*ley 13 python lambda dictionary

我有一个字典列表,其中包含相同的键,例如:

[{k1:'foo', k2:'bar', k3...k4....}, {k1:'foo2', k2:'bar2', k3...k4....}, ....]
Run Code Online (Sandbox Code Playgroud)

我正在尝试从列表中的所有字典中删除k1.

我试过了

map(lambda x: del x['k1'], list)
Run Code Online (Sandbox Code Playgroud)

但这给了我一个语法错误.我哪里出错了?

Ned*_*der 29

lambda体只是表达式,而不是语句del.

如果你必须使用map和lambda,那么:

map(lambda d: d.pop('k1'), list_of_d)
Run Code Online (Sandbox Code Playgroud)

for循环可能更清晰:

for d in list_of_d:
    del d['k1']
Run Code Online (Sandbox Code Playgroud)

  • 提示 `map` 在 Python 3 中返回 *map 对象*,而不是列表,因此 **lambda 不会被执行**,除非被消耗。 (3认同)
  • 不会只是给我一个'k1's 的列表吗?pop 返回我相信被删除的值。 (2认同)