[問題] 用for迴圈找眾數
各位大大安安
小弟正在自學python (https://tinyurl.com/yu9nfd6f )
迴圈實在弄得我頭痛QQ
有個題目如下:
尋找眾數
numbers_str 是一個使用者輸入的以逗號分隔數字的字串。
從 numbers_str 中找到眾數(最常見的數字)並顯示出:
眾數是{眾數}
提示 1
使用 split() 方法把一個以逗號分隔數字的字串轉換成一個串列。
提示 2
嘗試創造一個字典,其中每個鍵是串列中的一個數字,而值是該數字出現在串列中的次數
。
例如,如果串列是[10, 20, 10, 30],我們要創造以下字典:
{ 10: 2, 20: 1, 30: 1 }
解答如下:
numbers_str = input('請輸入以逗號分隔的一串數字: ') #這是題目已經預設的
numbers = numbers_str.split(',')
# occurrences 儲存一個數字出現的次數
occurrences = {}
for n in numbers:
if n in occurrences:
occurrences[n.strip()] += 1
else:
occurrences[n.strip()] = 1
# mode 是目前最常出現的數字
mode = -1
# mode_count 是 mode 出現的次數
mode_count = 0
for n, count in occurrences.items():
if mode_count == 0 or mode_count < count:
mode = n
mode_count = count
print(f'眾數是{mode}')
解答到上半部的for都還看得懂
下半部就不懂為什麼要把mode=-1
if的 mode_count < count這個部分也還可以
mode_count == 0 就不懂了
然後我嘗試跑了他的解答
發現答案好像不是完整的眾數
例如我如果輸入的是: 7,7,1,1,8
答案只會出現7 而沒有辦法顯示全部的答案
不太確定是我的問題還是題目沒有出好@@
再拜託各位大大幫忙解答
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.235.193.17 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1647861101.A.615.html
※ 編輯: i329 (36.235.193.17 臺灣), 03/21/2022 19:13:42
※ 編輯: i329 (36.235.193.17 臺灣), 03/21/2022 19:14:36
推
03/21 19:20,
2年前
, 1F
03/21 19:20, 1F
請教一般要找眾數有其他的方法嗎?
→
03/21 19:20,
2年前
, 2F
03/21 19:20, 2F
→
03/21 19:41,
2年前
, 3F
03/21 19:41, 3F
→
03/21 19:41,
2年前
, 4F
03/21 19:41, 4F
我剛剛試了 [-1,7,-9,11,-1,3,6,7]
是可以找出-1的 @@ 所以好像沒有限制一定要正數?
然後想問一下mode_count == 0的用意
感謝
※ 編輯: i329 (36.235.193.17 臺灣), 03/21/2022 20:42:23
推
03/21 21:34,
2年前
, 5F
03/21 21:34, 5F
→
03/21 21:34,
2年前
, 6F
03/21 21:34, 6F
感謝大大回應
請問初始化的話是不是設定任意數都可以呢?
另外不明白已經設定mode_count = 0
那跟後面的mode_count == 0有關係嗎 這個又是什麼意思呢?
※ 編輯: i329 (36.235.193.17 臺灣), 03/21/2022 22:33:07
推
03/21 22:55,
2年前
, 7F
03/21 22:55, 7F
→
03/21 22:55,
2年前
, 8F
03/21 22:55, 8F
→
03/21 22:56,
2年前
, 9F
03/21 22:56, 9F
好的
→
03/21 23:06,
2年前
, 10F
03/21 23:06, 10F
→
03/21 23:06,
2年前
, 11F
03/21 23:06, 11F
→
03/21 23:06,
2年前
, 12F
03/21 23:06, 12F
→
03/21 23:06,
2年前
, 13F
03/21 23:06, 13F
→
03/21 23:07,
2年前
, 14F
03/21 23:07, 14F
→
03/21 23:07,
2年前
, 15F
03/21 23:07, 15F
我試了一下似乎是可以運行的 感謝
可以請教mode_count == 0在什麼情況下是必要的呢?
推
03/22 09:21,
2年前
, 16F
03/22 09:21, 16F
可以請大大講的詳細一點 或是指點方向嗎?
推
03/22 11:26,
2年前
, 17F
03/22 11:26, 17F
可以請大大說說看你的想法嗎?
※ 編輯: i329 (36.235.193.17 臺灣), 03/22/2022 12:10:56
→
03/22 13:06,
2年前
, 18F
03/22 13:06, 18F
對欸 好像比較好懂
推
03/22 14:39,
2年前
, 19F
03/22 14:39, 19F
→
03/22 14:40,
2年前
, 20F
03/22 14:40, 20F
→
03/22 14:42,
2年前
, 21F
03/22 14:42, 21F
原來如此
感謝各位大大解惑
※ 編輯: i329 (36.235.193.17 臺灣), 03/22/2022 18:28:05
推
03/22 23:45,
2年前
, 22F
03/22 23:45, 22F
→
03/22 23:46,
2年前
, 23F
03/22 23:46, 23F
好的 我再努力
推
03/23 02:27,
2年前
, 24F
03/23 02:27, 24F
我遇到一個問題 有些寫法看不懂 又沒辦法打開一個一個看 該怎麼辦呢@@
※ 編輯: i329 (36.235.165.174 臺灣), 03/24/2022 22:50:08
→
03/26 16:48,
2年前
, 25F
03/26 16:48, 25F
→
03/26 16:48,
2年前
, 26F
03/26 16:48, 26F