我想计算每个项目在列表中显示多少次。这是我所拥有的:
for i in range(len(alist)):
print(alist[i], alist.count(i))
现在出现的问题是,例如,如果列表中有7次相同的出现,则它正在打印
a 0
a 0
a 0
a 0
a 0
a 0
a 0
而不是我想要的是
a 7
答案 0 :(得分:2)
您可以使用collections.Counter
:
from collections import Counter
cnt = Counter(['a', 'a', 'b', 'a'])
print(cnt) # Counter({'a': 3, 'b': 1})
由于Counter
是下面的dict
,因此您可以执行以下操作:
for char, count in cnt.items():
print(char, count)
# a 3
# b 1
答案 1 :(得分:1)
您已将i的值声明为整数,因此您需要计算i的列表项,而不是i本身。
print(alist[i], alist.count(alist[i]))
或者,我建议:
your_list = ['A', 'B', 'A', 'C', 'A']
for item in set(list):
print(f'{item} occurs {your_list.count(item)} number of times.')
这使您的代码更具可读性:) set(list)
将返回一个集合,即列表中的所有唯一值。或者,您可以使用numpy.unique()
达到相同的效果。