这是我的字典变量和过滤器;
dict = {'company': 'Ferrari', 'model': 'Asd car', 'price': 50, color: 'red'}
filter = {'company': 'Ferrari', price:50}
在过滤器中,我可以根据需要添加键:值。
我想创建一个过滤器,可以在其中增加过滤器变量以进行过滤,以避免创建增量代码,如下所示:
if dict['company'] == filter['company']
如何通过过滤器的键和这些值来获取所有匹配的数据?
输出将是:
dict1 = {'company': 'Ferrari', 'model': 'Asd car', 'price': 50, color: 'red'}
dict2 = {'company': 'Renault', 'model': 'Asd car', 'price': 50, color: 'red'}
filter = {'company': 'Ferrari', price:50}
OUTPUT = {'company': 'Ferrari', 'model': 'Asd car', 'price': 50, color: 'red'}
只有第一个通过, dict1 ,它通过了过滤器。 第二个 dict2 未通过,并且公司的过滤条件不是“ Ferrari” 我想获得通过过滤器的字典。
答案 0 :(得分:1)
此:
sentinel = object()
if all(dict.get(k, sentinel) == v for k, v in filter.items()):
答案 1 :(得分:1)
希望这就是你想要的
setf = set(myfilter.items()) # save space
if setf == (set(mydict.items()) & setf): # if pass
print(mydict) # do your stuff here