Skip to main content
 首页 » 编程设计

Python 计数出现返回 0

2025年05月04日18jillzhang

我有一个列表,分别包含一个人的姓名、年龄和 ID。 我想计算列表中给定 id 的出现次数。

当我尝试时:

alist=[(('john', 37), 8),(('john', 37), 8)] 
 
count_ID=alist.count(8) 
print count_ID 

我收到:

count_ID returns 0 

我希望它在这个例子中返回 2,因为列表有 2 个 id=8 的项目。我怎样才能解决这个问题?

请您参考如下方法:

试试这个:

alist = [ (('john', 37), 8), (('john', 37), 8) ] 
sum(1 for x in alist if x[1] == 8) 

您必须以某种方式指定 id 字段作为元组中的第二个元素出现,然后仅过滤掉那些具有 id == 8 的元组,最后求和1 对应于找到的每个 - 或者我们可以找出结果列表的长度,但是当生成器足够时为什么要创建一个临时列表?

正如评论中指出的,这也有效:

sum(x[1] == 8 for x in alist) 

上面的代码片段有效,因为在比较 x[1] == 8 中,True 值计算为 1 和 False 的计算结果为 0。