簡體   English   中英

尋找最常見的元素

[英]Finding the most common element

我已經設法確定哪個元素最常出現,但隨后我很難將該值存儲在變量中,甚至存儲在字典中的所有項目中。

gather_occurrences = ['CAT', 'BIRD', 'DOG', 'BIRD', 'DOG', 'CAT', 'BIRD', 'RAT']
unique_occurrences = set(gather_occurances)
unique_occurrences = {'CAT', 'DOG', 'BIRD', 'RAT'}

counting = 1

for x in unique_occurrences:
    count = gather_occurrences.count(x)
    each_item = { counting : {x : count }}
    counting += 1
    all_data = []
    all_data.append(each_item)
    print(each_item)

print(all_data)

輸出:

{1: {'CAT': 2}}
{2: {'BIRD': 3}}
{3: {'RAT': 1}}
{4: {'DOG': 2}}

[{4: {'DOG': 2}}]

每次我運行代碼時,all_data 部分例如[{4: {'DOG': 2}}]只包含 1 條數據而不是列表或字典。

我一直在 for 循環中交換代碼行我試過.extend而不是.append但我似乎永遠無法獲得我想要的輸出。

問題是你循環中定義了保持結構,所以你一直覆蓋它,你需要之前定義它。 為每個值設置 2 級字典似乎也沒用

gather_occurances = ['CAT', 'BIRD', 'DOG', 'BIRD', 'DOG', 'CAT', 'BIRD', 'RAT']
unique_occrrences = set(gather_occurances)
all_data = []
for x in unique_occrrences:
    all_data.append({x: gather_occurances.count(x)})
print(all_data)
#  [{'CAT': 2}, {'BIRD': 3}, {'DOG': 2}, {'RAT': 1}]

注意內置collections.Counter

from collections import Counter

c = Counter(gather_occurances)
print(c)          # {'BIRD': 3, 'CAT': 2, 'DOG': 2, 'RAT': 1}
print(c.items())  # [('CAT', 2), ('BIRD', 3), ('DOG', 2), ('RAT', 1)]

您應該將all_data = []移到 for 循環之外。 出現您的問題是因為每次循環時,您都會重置all_data ,因此只有您添加到其中的最后一項仍然存在。

暫無
暫無

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

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