簡體   English   中英

計算列表中每個項目的出現次數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM