[英]Count number of occurrences for each item in a list
我想計算每個項目在列表中顯示的次數。 這是我所擁有的:
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
您可以為此使用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
您已將 i 的值聲明為 integer,因此您需要計算 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()
達到同樣的效果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.