众数
老码农:小码匠,我向你保证,今天的算法一点也不难。
小码匠:不难?我信你个鬼,你给我整的题有不难的?算了,说来听听吧。
老码农:来来来,上菜,本期的菜——求众数
输入:列表中有多个数据。
输出:求这个数据列表中,出现次数最多的数据。
百度百科
代码语言:javascript复制https://baike.baidu.com/item/众数/44796?fr=aladdin
小码匠:唔,我明白了,这个看起来的确不难,用一句你们“码农”界的行话,“开撸代码”,走起。
老码农:学的够快的哈,那就赶紧做吧。
小码匠:唔,这里这样,不对应该这样……
小码匠一阵噼里啪啦,呈现如下代码:
代码语言:javascript复制def mode(input_list: list) -> list:
"""
众数
href: https://baike.baidu.com/item/众数/44796
input_list: list[int] 数值型数据列表
returns: float: 众数列表
"""
if not input_list:
raise ValueError("你输入的是个空列表")
input_set = list(set(input_list))
dic = dict()
li = []
for i in input_set:
dic[i] = input_list.count(i)
num = max(list(dic.values()))
for j in dic.keys():
if dic[j] == num:
li.append(j)
if __name__ == "__main__":
# print(mode([]))
print(mode([60]))
print(mode([60, 60]))
print(mode([10, 10, 20, 30, 40, 10, 70, 80, 90]))
print(mode([60, 10, 20, 10, 40, 50, 70, 50, 90]))
老码农:先运行,看结果对吗?
小码匠轻点运行按钮
小码匠:哎,什么情况,怎么输出的都是None?
代码语言:javascript复制/System/Volumes/Data/fgb/01.git/04.coder/04.coding/coder-algorithm/venv/bin/python /System/Volumes/Data/fgb/01.git/04.coder/04.coding/coder-algorithm/algorithm/maths/mode.py
None
None
None
None
Process finished with exit code 0
老码农在一旁窃笑:啧啧啧,小码匠,不行啊。
小码匠:一边去,别妨碍我。
小码匠盯着屏幕,先看看代码再说:“