首页 > 解决方案 > 获取字典Python中具有特定值的所有键

问题描述

是否可以从 Python 字典中获取与特定值匹配的所有键?

例如,我有一个包含以下数据的字典:

dataset = [

        {'name': 'A', 'age': 37, 'gender': 'M'},
        {'name': 'B', 'age': 20, 'gender': 'F'},
        {'name': 'C', 'age': 17, 'gender': 'M'},
        {'name': 'D', 'age': 19, 'gender': 'F'},
        {'name': 'E', 'age': 30, 'gender': 'F'}
    ]

我想过滤字典并获取 Gender='F' 的所有键。

我运行下面的行来过滤值“F”的键“性别”。

res = next((sub for sub in dataset if sub['gender'] == 'F'), None)
print(res)

但是,我只得到 1 个键作为输出。

输出: {'name': 'B', 'age': 27, 'gender': 'F'}

想要这个作为输出:

{'name': 'B', 'age': 20, 'gender': 'F'}
{'name': 'D', 'age': 19, 'gender': 'F'}
{'name': 'E', 'age': 30, 'gender': 'F'}

标签: pythondictionary

解决方案


我不确定你为什么使用下一个函数,但简单的列表理解就可以了:

res = [sub for sub in dataset if sub['gender'] == 'F']


推荐阅读