gpt4 book ai didi

Python:使用字典输出文本文件的模式

转载 作者:行者123 更新时间:2023-12-05 06:32:30 25 4
gpt4 key购买 nike

我有一个包含未知数量数字的文本文件。我的程序读入这些值并计算最小值、最大值、范围和中值。我要做的最后一件事是找到集合的模式。

我有一个排序列表,我正在循环遍历该列表,以便将所有数字放入字典中,其中键是数字,每个数字的值是数字出现的次数。我知道如何做所有这些,但现在我需要输出集合的模式。

num_count = {}

for num in num_list:
if num in num_count:
num_count[num] += 1
if num not in num_count:
num_count[num] = 1

上面的代码是将列表中的所有数字放入字典中,并根据该数字在文件中出现的次数为它们提供相应的值,所以现在我只需要以如下方式输出模式[mode_1, mode_2, mode_3, etc..],但我只能让一个数字出现。

我有一个文本文件,模式应该输出为:

Mode: [660, 476]

但是,我的代码输出为:

Mode: 660
Mode: 476

这是我目前所拥有的:

maximum = 0

for num in num_count:
count = num_count[num]
if count > maximum:
maximum = count
if count == maximum:
print('Mode: ', num)

使用字典似乎是解决此问题的最简单方法。任何帮助将不胜感激。基本的 python 循环最好,没有导入的东西,如计数器等。

最佳答案

创建一个函数 compute_mode,其参数接受一个列表(在本例中为 num_count)。该函数找到模式并将它们存储在 temp_list 中,然后打印出来

将所有模式值附加到这样的列表中:

temp_list.append(num)

然后像这样打印列表:

print("Mode: " ,temp_list)

最终代码:

temp_list = []
def compute_mode(my_list):
counts = {}
maxcount = 0
for number in my_list:
if number not in counts:
counts[number] = 0
counts[number] += 1
if counts[number] > maxcount:
maxcount = counts[number]

for number, count in counts.items():
if count == maxcount:
temp_list.append(number)

num_count = [1,2,3,4,1,2,3,4,4] #any list
compute_mode(num_count)
print('Mode:', temp_list)

关于Python:使用字典输出文本文件的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51249479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com