首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算字典中相似值的数目?

如何计算字典中相似值的数目?
EN

Stack Overflow用户
提问于 2022-08-04 09:19:40
回答 5查看 54关注 0票数 -1

是否有方法计算字典中类似值的数量,例如,我有一个由不同用户及其名称、性别、年龄组成的列表.如果我想数数名单上的男性数量,该怎么做?

我知道这听起来可能很傻,但我对python还不熟悉,我正在尝试更多地了解它。

这是一个清单,如果有帮助的话:

代码语言:javascript
复制
user_list = [
    {'name': 'Alizom_12',
     'gender': 'f',
     'age': 34,
     'active_day': 170},
    {'name': 'Xzt4f',
     'gender': None,
     'age': None,
     'active_day': 1152},
    {'name': 'TomZ',
     'gender': 'm',
     'age': 24,
     'active_day': 15},
    {'name': 'Zxd975',
     'gender': None,
     'age': 44,
     'active_day': 752},
] 
EN

回答 5

Stack Overflow用户

发布于 2022-08-04 09:26:46

下面是两个性别计数示例的解决方案:

代码语言:javascript
复制
n_males = sum(1 for user in user_list if user['gender'] == 'm')
print(n_males )

使用计数器

代码语言:javascript
复制
from collections import Counter
counts = Counter((user['gender'] for user in user_list))
print(counts)
票数 1
EN

Stack Overflow用户

发布于 2022-08-04 09:26:38

您可以创建如下函数:

代码语言:javascript
复制
def count_gender(lst, gender):
    count=0
    for dictionary in lst:
        if dictionary["gender"] == gender:
            count+=1
    return count

然后将清单和期望的性别传递给它:

代码语言:javascript
复制
number = count_gender(user_list, "m")
print(number)
票数 0
EN

Stack Overflow用户

发布于 2022-08-04 09:28:09

您可以使用sum函数。

代码语言:javascript
复制
user_list = [
    {'name': 'Alizom_12',
     'gender': 'f',
     'age': 34,
     'active_day': 170},
    {'name': 'Xzt4f',
     'gender': None,
     'age': None,
     'active_day': 1152},
    {'name': 'TomZ',
     'gender': 'm',
     'age': 24,
     'active_day': 15},
    {'name': 'Zxd975',
     'gender': None,
     'age': 44,
     'active_day': 752},
]

print(sum(user["gender"] == "m" for user in user_list))

我给出了一个list comprehension in参数来过滤属性gender设置为m的用户。您可以很容易地创建一个函数来提高操作的效率。

代码语言:javascript
复制
def count_by_attribute(my_list: List, attribute: str, value: Any) -> int:
    return sum(o[attribute] == value for o in my_list)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73233329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档