好的,这是困扰了我几次,所以谢谢你Jayesh问。
上面的答案看起来像任何一个好的解决scheme,但如果你使用这遍遍你的代码,这是合理的包装的function恕我直言。 另外,这里有两种可能的用例:一种是关心所有关键字是否在原始字典中。 还有一个你不知道的地方 平等对待这将是很好的。
所以,对于我的两个价值,我build议写一个字典的子类,例如
class my_dict(dict): def subdict(self, keywords, fragile=False): d = {} for k in keywords: try: d[k] = self[k] except KeyError: if fragile: raise return d
现在你可以拿出一个子字典了
orig_dict.subdict(keywords)
用法示例:
# ## our keywords are letters of the alphabet keywords = 'abcdefghijklmnopqrstuvwxyz' # ## our dictionary maps letters to their index d = my_dict([(k,i) for i,k in enumerate(keywords)]) print('Original dictionary:\n%r\n\n' % (d,)) # ## constructing a sub-dictionary with good keywords oddkeywords = keywords[::2] subd = d.subdict(oddkeywords) print('Dictionary from odd numbered keys:\n%r\n\n' % (subd,