在不使用list.count的情况下计算列表中项目的出现次数

0 投票
4 回答
14275 浏览
提问于 2025-04-18 11:49

我想知道怎么在不使用 .count() 函数的情况下,计算一个列表中某个项目出现的次数。比如,我知道如果我有一段代码像这样运行:

>>> [1,2,3,1,2,1].count(1)

那么它会输出 3

为了更清楚一点,我想具体了解一下,怎么能得到这个输出 3,而不使用 .count()

4 个回答

0

当然可以!请看下面的内容:

在编程中,我们常常需要处理一些数据,比如从一个地方获取数据,然后把它放到另一个地方。这就像把书从一个书架搬到另一个书架一样。为了做到这一点,我们通常会用到一些工具和方法。

有时候,我们会遇到一些问题,比如数据格式不对,或者数据丢失。这就像在搬书的时候,发现有些书掉在地上了,或者有些书的封面破了。为了避免这些问题,我们需要仔细检查每一步,确保数据在搬运过程中不会出错。

在编程中,调试就是找出这些问题的过程。就像你在搬书的时候,发现有书掉了,你需要回去找找看是哪里出了问题。通过调试,我们可以一步一步地检查代码,找到并修复错误。

总之,处理数据就像搬书一样,需要小心翼翼,确保每一步都做对了,这样才能顺利完成任务。

len([a for a in [1,2,3,1,2,1] if a == 1])
1

你可以使用 sum 函数和一个 生成器表达式

>>> lst = [1, 2, 3, 1, 2, 1]
>>> sum(x == 1 for x in lst)
3
>>> sum(1 for x in lst if x == 1) # Alternately
3
>>>
7

你可以像这样使用一个for循环

x = [1,2,3,1,2,1]
count = 0
for i in x:
    if i == 3:
        count+= 1
print count
4

有很多种方法可以做到这一点:

x = [1,2,3,1,2,1]
count = len([i for i in x if i == 1])
print count

还有另一种方法:

>>> from collections import Counter
>>> counter = Counter(x)
Counter({1: 3, 2: 2, 3: 1})
>>> counter.get(1)
3
>>> 

撰写回答