Python中如何获取字典的子集

如果你有个巨大的字典,字典中的一些键属于一个特定的集合,你想创建一个包含这个键集合及其对应值的新字典,可以有下面解决方案:

>>> def sub_dict(dct, keys, default=None):
...     return dict([(key, dct.get(key, default)) for key in keys])
...
>>> dct = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> sub_dict(dct, 'ac')
{'a': 1, 'c': 3}
>>> sub_dict(dct, 'e', 'KEY NOT EXIST!')
{'e': 'KEY NOT EXIST!'}

如果想从原字典中删除那些符合条件的条目,可以使用下面的解决方案:

>>> def sub_dict_remove(dct, keys, default=None):
...     return dict([(key, dct.pop(key, default)) for key in keys])
...
>>> dct = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> sub_dict_remove(dct, 'abc')
{'a': 1, 'c': 3, 'b': 2}
>>> dct
{'d': 4}
>>> sub_dict_remove(dct, 'e', 'KEY NOT EXIST!')
{'e': 'KEY NOT EXIST!'}
>>>

可以说,很完美的实现了需要!

猜你喜欢

转载自blog.csdn.net/jerry_1126/article/details/81156571