我已經設法確定哪個元素最常出現,但隨后我很難將該值存盤在變數中,甚至是字典中的所有專案中。
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但我似乎永遠無法獲得我想要的輸出。
uj5u.com熱心網友回復:
問題是你在回圈中定義了保持結構,所以你一直覆寫它,你需要之前定義它。為每個值設定 2 級 dict 似乎也沒用
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)]
uj5u.com熱心網友回復:
您應該移出all_data = []for 回圈。您的問題出現是因為每次回圈時,您都會重置all_data,因此只有您添加到其中的最后一件事會保留下來。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358208.html
上一篇:從嵌套字典結構串列(具有兩個級別)創建資料框的Pythonic方法是什么?
下一篇:用段落中的常用詞制作詞典
