我有一个字典列表,例如:
[{'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中引入。