为什么模式总是1?
Why is mode always 1?
我正在尝试的一个有趣的概念是计算模式(每行出现次数最多的数字)。当有很多模式时,我也想只打印出最低编号的模式值。我发现了一个关于计算模式并尝试应用大量答案的 SO 问题,但我应用的所有答案都给我一个值(我会告诉你)。
如您所见,我尝试了几种不同的方法来逐行计算众数。
关于为什么模式总是一个的任何建议?谢谢
更新:
使用下面用户建议的手动输入代码,输出如下:
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
由于列表的模式实际上是2,我相信模式功能可以正常工作。我更新了原始 names_list 的代码和输出,因为我意识到代码和输出不匹配(对此感到抱歉)。
所以我的理解是我设置 names_list 的方式不正确来计算模式。我不太明白那是怎么回事,如果有任何建议,我将不胜感激。
更新 2:
我采纳了下面一位用户的建议,将 names_list = line.split(' ')
添加到我的代码中,以便正确解析整数。该建议为我提供了正确的值,但我想在有多种模式时打印出最小的整数,并且在只有一种模式时仍希望打印出模式。
我看不到 names_list 的设置位置,所以我认为您遗漏了一些代码。无论如何,根据您的输出,您不会将文件的行拆分为单独的数字。
也就是说,您的列表是 [ "a string" ] 而不是 [ 1,2,3,4,5,6,5,6 ] 一堆数字。
模式计算本身看起来不错。尝试编写一个测试用例,如下所示:
print_mode([1,2,3,2,3,2])
手动输入列表将有助于将解析错误与逻辑错误区分开来。
我正在尝试的一个有趣的概念是计算模式(每行出现次数最多的数字)。当有很多模式时,我也想只打印出最低编号的模式值。我发现了一个关于计算模式并尝试应用大量答案的 SO 问题,但我应用的所有答案都给我一个值(我会告诉你)。
如您所见,我尝试了几种不同的方法来逐行计算众数。
关于为什么模式总是一个的任何建议?谢谢
更新: 使用下面用户建议的手动输入代码,输出如下:
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
item 1
item 2
item 3
item 2
item 3
item 2
maxitem 1
maxitem 2
Mode of list: 2
None
由于列表的模式实际上是2,我相信模式功能可以正常工作。我更新了原始 names_list 的代码和输出,因为我意识到代码和输出不匹配(对此感到抱歉)。 所以我的理解是我设置 names_list 的方式不正确来计算模式。我不太明白那是怎么回事,如果有任何建议,我将不胜感激。
更新 2:
我采纳了下面一位用户的建议,将 names_list = line.split(' ')
添加到我的代码中,以便正确解析整数。该建议为我提供了正确的值,但我想在有多种模式时打印出最小的整数,并且在只有一种模式时仍希望打印出模式。
我看不到 names_list 的设置位置,所以我认为您遗漏了一些代码。无论如何,根据您的输出,您不会将文件的行拆分为单独的数字。
也就是说,您的列表是 [ "a string" ] 而不是 [ 1,2,3,4,5,6,5,6 ] 一堆数字。
模式计算本身看起来不错。尝试编写一个测试用例,如下所示:
print_mode([1,2,3,2,3,2])
手动输入列表将有助于将解析错误与逻辑错误区分开来。