假设我有一个字典,其键是字符串.如何从仅包含某些列表中存在的键的字典中有效地创建新字典?
例如:
# a dictionary mapping strings to stuff
mydict = {'quux': ...,
'bar': ...,
'foo': ...}
# list of keys to be selected from mydict
keys_to_select = ['foo', 'bar', ...]
Run Code Online (Sandbox Code Playgroud)
我想出的方式是:
filtered_mydict = [mydict[k] for k in mydict.keys() \
if k in keys_to_select]
Run Code Online (Sandbox Code Playgroud)
但我认为这是非常低效的,因为:(1)它需要使用keys()枚举键,(2)它需要每次在keys_to_select中查找k.我想,至少有一个可以避免.有任何想法吗?如果需要,我也可以使用scipy/numpy.
Ale*_*lli 15
dict((k, mydict[k]) for k in keys_to_select)
Run Code Online (Sandbox Code Playgroud)
如果您知道所有要选择的键也是键mydict; 如果不是这样,
dict((k, mydict[k]) for k in keys_to_select if k in mydict)
Run Code Online (Sandbox Code Playgroud)