亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python:使用字典輸出文本文件的模式

Python:使用字典輸出文本文件的模式

Helenr 2021-03-31 09:10:37
我有一個文本文件,其中包含未知數量的數字。我的程序讀取這些值并計算出最小值,最大值,范圍和中位數。我要做的最后一件事是找到集合的模式。我有一個循環遍歷的排序列表,以便將所有數字放在字典中,其中鍵是數字,每個數字的值是數字出現的次數。我了解如何執行所有操作,但是現在我需要輸出集合的模式。num_count = {}for num in num_list:    if num in num_count:        num_count[num] += 1    if num not in num_count:        num_count[num] = 1上面的代碼將所有數字從列表中放入字典中,并為它們提供相應的值以及該數字在文件中出現的次數,因此現在我只需要以[mode_1, mode_2,mode_3等。],但我只能顯示一個數字。我有一個文本文件,其中模式應輸出為:Mode: [660, 476]但是,我的代碼輸出為:Mode: 660Mode: 476這是我到目前為止的內容:maximum = 0for num in num_count:    count = num_count[num]    if count > maximum:        maximum = count    if count == maximum:        print('Mode: ', num)使用字典似乎是解決此問題的最簡單方法。任何幫助將不勝感激?;镜膒ython循環將是最好的,而無需導入諸如counter之類的東西。
查看完整描述

2 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

創建一個compute_mode帶有接受列表的參數的函數(在本例中為num_count)。該函數查找模式并將其存儲在中temp_list,然后將其打印出來


將所有模式值附加到這樣的列表中:


temp_list.append(num)

然后像這樣打印列表:


print("Mode: " ,temp_list)

最終代碼:


temp_list = []

def compute_mode(my_list):

    counts = {}

    maxcount = 0

    for number in my_list:

        if number not in counts:

            counts[number] = 0

        counts[number] += 1

        if counts[number] > maxcount:

            maxcount = counts[number]


    for number, count in counts.items():

        if count == maxcount:

            temp_list.append(number)


num_count = [1,2,3,4,1,2,3,4,4] #any list

compute_mode(num_count)

print('Mode:', temp_list)


查看完整回答
反對 回復 2021-04-27
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

使用清單


maximum = 0

modes = []


for num in num_count:

    count = num_count[num]

    if count > maximum:

        maximum = count

    if count == maximum:

        modes.append(num)


print('Mode: ', modes)


查看完整回答
反對 回復 2021-04-27
  • 2 回答
  • 0 關注
  • 392 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號