假设我有一个字典:
myDict = [{'first': 'James', 'middle': 'Smith', 'last': 'Joule'},
{'first': 'James', 'middle': 'Johnson', 'last': 'Watt'},
{'first': 'Christian', 'middle': 'Edward', 'last': 'Doppler'}
{'first': 'Robert', 'last': 'Antonio'}]
我有一个名为keys的列表:
keys = ["middle", "last"]
我希望能根据keys中的每个值过滤myDict,这将导致:
filteredDict = [{'middle': 'Smith', 'last': 'Joule'},
{'middle': 'Johnson', 'last': 'Watt'},
{'middle': 'Edward', 'last': 'Doppler'},
{'last': 'Antonio'}]
如在myDict列表中的字典列表中所示,字典不必同时具有两个键才能被放入filteredDict中。是否有一种简单的方式可以使用Python中的字典推导来实现这一点?
map
可以让代码看起来更简洁。因此,只需写成[{ k: v for (k,v) in x.items() if k in keys } for x in myDict]
。请注意,这不会改变原始代码的含义。 - K. A. Buhr