作者agiwar (我就是我)
看板Python
标题[问题] list 众数问题
时间Thu Oct 11 14:35:03 2018
大家好,小弟正在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://webptt.com/cn.aspx?n=bbs/Python/M.1539239705.A.293.html
1F:→ agiwar: 我用filter去做会 Runtime Error10/11 14:55
3F:推 ckc1ark: max(set(x), key=lambda v:(x.count(v), -v)) 这样呢10/11 15:20
5F:→ tsoahans: 阿 和楼上一样10/11 15:24
6F:推 Yshuan: 对set做max操作, 可能不保证order吧.10/11 15:46
7F:推 ckc1ark: 所以先sort一下也可以 max(sorted(set(x)), key=x.count)10/11 15:51
8F:→ agiwar: 感谢楼上大大们的回答,我想应该就是像Y大说的那样。10/11 15:58
※ 编辑: agiwar (118.163.2.172), 10/11/2018 16:06:19
9F:推 handsomeLin: 其实根本不用这麽花俏阿...不是用个dict就能解了吗 10/12 14:01
10F:推 handsomeLin: 一样空间复杂度 多写个六七行就能达到O(n) 为什麽不 10/12 14:15
11F:→ handsomeLin: 用呢 10/12 14:15
12F:推 jlhc: 同意楼上 10/12 23:05
13F:推 handsomeLin: 补充 像这种写法面试你写都不一定写的出来 还会写错 10/13 08:16
14F:→ handsomeLin: 练习没意义 10/13 08:16
15F:→ agiwar: 我理解林帅的说法也同意,我会练习这种trick是因为有次面 10/15 12:02
16F:→ agiwar: 试没写好,每题都要求一行完成... 10/15 12:02