按筛选器匹配词典(其他词典)

2024-09-28 20:20:29 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的dict var和一个过滤器

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不通过,公司的过滤器不是“法拉利” 我想得到通过过滤器的记录。你知道吗


Tags: 过滤器modelvarred关键字filtercarprice
2条回答

这是:

sentinel = object()
if all(dict.get(k, sentinel) == v for k, v in filter.items()):

希望这就是你想要的

setf = set(myfilter.items()) # save space
if setf == (set(mydict.items()) & setf): # if pass 
    print(mydict) # do your stuff here

相关问题 更多 >