gpt4 book ai didi

python - Python 中字典列表的条件操作

转载 作者:太空宇宙 更新时间:2023-11-04 00:23:23 24 4
gpt4 key购买 nike

我想根据另一个键的条件(例如 Gender == 'male')对这个字典列表中所有人的年龄求和:

list_of_dicts= [  
{"Name": "Ethan", "Gender": "male", "Age": 11},
{"Name": "Nathan", "Gender": "male", "Age": 6},
{"Name": "Sophie", "Gender": "female", "Age": 14},
{"Name": "Patrick", "Gender": "male", "Age": 11}
]

下面的代码完成了它,但我想知道是否有更 Pythonic/compact 的方法来做到这一点?也许像字典列表的 SQL 查询?

total_male_age = 0

for dict in list_of_dicts:
if dict.get("Gender") == "male":
total_male_age = total_male_age + dict.get("Age")


#total_male_age = 28

最佳答案

这个怎么样?

>>> sum(d['Age'] for d in list_of_dicts if d['Gender'] == 'male')
28

从技术上讲,您在此处对生成器表达式调用 sum - 过滤到 Gender 等于“male”的字典。

PEP 289提供了一些进一步阅读的示例。

要查找乘积而不是总和:

import numpy as np
np.product([d['Age'] for d in list_of_dicts if d['Gender'] == 'male'])

如果您想在 Python 的标准库中查找产品:

from functools import reduce
from operator import mul
reduce(mul, (d['Age'] for d in list_of_dicts if d['Gender'] == 'male'), 1)

关于python - Python 中字典列表的条件操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48372419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com