我有一个字典列表,例如:

[{'mykey1':'myvalue1', 'mykey2':'myvalue2'}, {'mykey1':'myvalue1a', 'mykey2':'myvalue2a'}]

我需要从所有键等于mykey1的字典中删除所有键值对。我可以通过遍历并使用del语句来做到这一点,但我想知道如何使用列表推导或lambda创建一个新列表,该列表将删除键为mykey1的所有键值对。

非常感谢

最佳答案

如果您确实要使用列表推导,请将其与字典推导结合使用:

[{k: v for k, v in d.iteritems() if k != 'mykey1'} for d in mylist]

如果您使用的是Python 3,请用.iteritems()替换.items()

在python 2.6及更低版本上,您应该使用:
[dict((k, v) for k, v in d.iteritems() if k != 'mykey1') for d in mylist]

因为{key: value ...} dict理解语法仅在Python 2.7和3中引入。

10-06 00:29