我试图创建一个函数来查找某个项在函数中出现的次数。我有下面的代码,但它最终计算列表中的所有项目(6),而不仅仅是我想要的那个(在这种情况下为1)。我知道我没有回复任何东西,印刷品主要是为了让我看到我得到的答案。
def count(sequence, item):
found = 0
for i in sequence:
if item in sequence:
found = found + 1
print found
count([1,2,1,2,4,5], 1)
答案 0 :(得分:1)
试试这个
def count(sequence, item):
found = 0
for i in sequence:
if i == item:
found = found + 1
print found
count([1,2,1,2,4,5], 1)
答案 1 :(得分:1)
您必须将sequence
中的元素与item
if i == item:
答案 2 :(得分:1)
您是否意识到此方法已存在?
return sequence.count(item)
例如,我们从
获得值2my_list = [1,2,1,2,4,5]
print my_list.count(1)
好的,所以你想要一些更难的东西。 :-)这个怎么样?
return len([i for i in sequence if i == item])
答案 3 :(得分:0)
您可以使用sum
和理解
def count(haystack, needle):
return sum(el==needle for el in haystack)
这适用于您可以迭代的任何序列。
>>> s = {"a": None, "b": None, "c": None}
>>> count(s, "a") # why are you counting a dict? You so crazy....
1
这是有效的,因为True
可以强制转换为整数1
。对一系列布尔值求和会导致序列中True
s的计数。
答案 4 :(得分:0)
为了将来参考,python有一个很棒的Counter类,可以为你做这个。
from collections import Counter
someList = [1,2,1,2,4,5]
allCounts = Counter(someList)
print allCounts[1]
print allCounts
答案 5 :(得分:-2)
Python列出support this natively
>>> my_list = [1, 2, 1, 2, 4, 5]
>>> print my_list.count(1)
2