python - How to check if dictionary has unwanted keys? -
i have 2 lists:
- keys must in dict
keys optional dict
- how can check if keys must there in dictionary there or not?
- how can check if of optional keys there in dictionary or not?
use dictionary views , sets:
missing = set(required) - some_dict.viewkeys() optional_present = some_dict.viewkeys() & optional sets, dictionaries, make membership testing cheap , fast, , set operations make easy test if items present or not. want make required , optional sets starts with.
for example, subtraction on sets calculates difference, missing set difference between required list , keys in dictionary.
using & operator on sets (normally binary and) gives intersection, optional_present gives keys in dictionary in optional sequence (doesn't have set in case, using set there make sense).
for testing individual keys can still use key in some_dict, using set operations avoids excessive looping.
note dict.viewkeys() specific python (added in python 2.7); in python 3, dictionary enumeration methods .keys(), .values() , .items() return dictionary views default , .view*() methods gone.
Comments
Post a Comment