根据键中的值过滤字典 [英] filtering dictionary based on value in a key

查看:68
本文介绍了根据键中的值过滤字典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想过滤具有'hometown':'NY'

I would like to filter the dictionary that has 'hometown':'NY'

[{'name': 'paul', 'age': '26', 'hometown': 'AU', 'gender': 'male'},
{'name': 'mei', 'age': '27', 'hometown': 'NY', 'gender': 'female'},
{'name': 'smith', 'age': '14', 'hometown': 'NY', 'gender': 'male'},
{'name': 'raj', 'age': '13', 'hometown': 'IND', 'gender': 'male'},.....]

这是我的代码

a=[]
for test in result:
   x={}
   for key,value in test.items():
        if key == 'hometown':
            if 'NY' in value:
                x[key] = value
   a.append(x)

这是我的输出:

[{}, {'hometown': 'NY'}, {'hometown': 'NY'}, {}]

我想要的输出是:

[{'name': 'mei', 'age': '27', 'hometown': 'NY', 'gender': 'female'},
{'name': 'smith', 'age': '14', 'hometown': 'NY', 'gender': 'male'}]


推荐答案

In [12]: a = [{'name': 'paul', 'age': '26', 'hometown': 'AU', 'gender': 'male'},
    ...:
    ...: {'name': 'mei', 'age': '27', 'hometown': 'NY', 'gender': 'female'},
    ...: {'name': 'smith', 'age': '14', 'hometown': 'NY', 'gender': 'male'},
    ...: {'name': 'raj', 'age': '13', 'hometown': 'IND', 'gender': 'male'}]

In [13]: [i for i in a if i["hometown"]=="NY"]
Out[13]:
[{'name': 'mei', 'age': '27', 'hometown': 'NY', 'gender': 'female'},
 {'name': 'smith', 'age': '14', 'hometown': 'NY', 'gender': 'male'}]

这篇关于根据键中的值过滤字典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆