各位大大安安
小弟正在自學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 而沒有辦法顯示全部的答案
不太確定是我的問題還是題目沒有出好@@
再拜託各位大大幫忙解答
感謝