[問題] list 眾數問題 (已解決)

看板Python作者 (我就是我)時間5年前 (2018/10/11 14:35), 5年前編輯推噓7(709)
留言16則, 6人參與, 5年前最新討論串1/1
大家好,小弟正在python刷題中 題目是這樣的:給定一list找出眾數值, 若出現次數一樣多的元素不只一個, 則選出數值較小的元素。 這是我不import任何套件寫的: https://imgur.com/a/3ZVIwF3 不過交出答案後不通過 原因在於 max(set(arr), key=arr.count()) 不會找出最小的元素 (在相同出現次數條件下) 但是我自己去嘗試別的list,卻可以得到最小的元素 https://imgur.com/a/7it3xL4 還請有高手能替小弟解惑,感謝~! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.2.172 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1539239705.A.293.html

10/11 14:55, 5年前 , 1F
我用filter去做會 Runtime Error
10/11 14:55, 1F

10/11 14:56, 5年前 , 2F

10/11 15:20, 5年前 , 3F
max(set(x), key=lambda v:(x.count(v), -v)) 這樣呢
10/11 15:20, 3F

10/11 15:24, 5年前 , 4F

10/11 15:24, 5年前 , 5F
阿 和樓上一樣
10/11 15:24, 5F

10/11 15:46, 5年前 , 6F
對set做max操作, 可能不保證order吧.
10/11 15:46, 6F

10/11 15:51, 5年前 , 7F
所以先sort一下也可以 max(sorted(set(x)), key=x.count)
10/11 15:51, 7F

10/11 15:58, 5年前 , 8F
感謝樓上大大們的回答,我想應該就是像Y大說的那樣。
10/11 15:58, 8F
※ 編輯: agiwar (118.163.2.172), 10/11/2018 16:06:19

10/12 14:01, 5年前 , 9F
其實根本不用這麼花俏阿...不是用個dict就能解了嗎
10/12 14:01, 9F

10/12 14:15, 5年前 , 10F
一樣空間複雜度 多寫個六七行就能達到O(n) 為什麼不
10/12 14:15, 10F

10/12 14:15, 5年前 , 11F
用呢
10/12 14:15, 11F

10/12 23:05, 5年前 , 12F
同意樓上
10/12 23:05, 12F

10/13 08:16, 5年前 , 13F
補充 像這種寫法面試你寫都不一定寫的出來 還會寫錯
10/13 08:16, 13F

10/13 08:16, 5年前 , 14F
練習沒意義
10/13 08:16, 14F

10/15 12:02, 5年前 , 15F
我理解林帥的說法也同意,我會練習這種trick是因為有次面
10/15 12:02, 15F

10/15 12:02, 5年前 , 16F
試沒寫好,每題都要求一行完成...
10/15 12:02, 16F
文章代碼(AID): #1RlkyPAJ (Python)