计算列表中没有list.count的项目的出现次数

时间:2014-07-02 00:49:16

标签: python list count

我需要知道如何计算项目在列表中显示的次数,而不使用.count()函数。例如,我知道如果我有一个以

运行的代码
>>> [1,2,3,1,2,1].count(1)

然后输出3

为了澄清一点,我想具体了解如何在不使用3的情况下获得输出.count()

4 个答案:

答案 0 :(得分:5)

你可以像这样使用for循环

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

答案 1 :(得分:3)

执行此操作的众多方法之一:

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
>>> 

答案 2 :(得分:1)

您可以使用sumgenerator expression

>>> 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
>>>

答案 3 :(得分:0)

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