python - 获取字典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'}
解决方案
我不确定你为什么使用下一个函数,但简单的列表理解就可以了:
res = [sub for sub in dataset if sub['gender'] == 'F']
推荐阅读
- email - 使用 Google Apps 脚本阻止的电子邮件
- c# - 带有 .NET Core 类库的 DLL Hell
- python - 不知道如何在 Python 中安装滑板包?
- javascript - 如何在vue中清除模态表单内的值
- r - tidymodels 列中发现的新级别
- pyspark - 如何从 Pyspark 中的另一列中获取包含值列表的列
- wayland - 非 XDG Wayland 应用程序的示例?
- character - 如何选择出现在多个不连续行中的同一组字符,然后将这些标记的整个行复制到新的记事本中?
- swift - How can I be sure that I am accessing the correct value to use in Swift
- excel - 使用 ADO 和 ACE 提供程序为 INSERT 组合多个 UNION