簡體   English   中英

累計計算列表中每個元素的出現次數

[英]Count cumulatively the occurrences of each element of a list

我有一個清單:

selection_list=[3, 2, 3, 2, 2, 2]

我想累計計算每個元素的出現次數,我希望 output 為:

['1/2', '1/4' , '2/2', '2/4', '3/4', '4/4'] # 1/2 means: first occurrence of two
dico={'selection':[], 'Number':[]}
l=[]
keys=[]
for i in range(len(selection_list)):
        dico['selection'].append(selection_list[i])
        #counting the total occurrences of each element
        occurrences = collections.Counter(selection_list)
for i in occurrences.keys():
        keys.append(i)
    #indexes of each element of the list 
for j in range(len(keys)):
       l.append([i for i,val in enumerate(selection_list) if val==keys[j]])
        

for i in range(len(l)):
       for j in l[i] :
       dico['Number'].insert(int(j), str(len(l[i]))+'-'+ str(len(l[i])) )

我得到這個 output:

dico={'selection': [2, 3, 2, 3, 3, 3], 'UnfoldingNumber': ['2-2', '4-4', '2-2', '4-4', '4-4', '4-4']}

我錯過了什么?

這是一個簡單的解決方案的示例:

from collections import Counter

selection_list=[3, 2, 3, 2, 2, 2]

numerator = {i:0 for i in set(selection_list)}
denominator = Counter(selection_list)

result = []
for v in selection_list:
    numerator[v] += 1
    result.append(str(numerator[v]) + '/' + str(denominator[v]))

print(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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