猿问

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

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


我有一个循环遍历的排序列表,以便将所有数字放在字典中,其中键是数字,每个数字的值是数字出现的次数。我了解如何执行所有操作,但是现在我需要输出集合的模式。


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等。],但我只能显示一个数字。


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


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循环将是最好的,而无需导入诸如counter之类的东西。


Helenr
浏览 368回答 2
2回答

慕容708150

创建一个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 listcompute_mode(num_count)print('Mode:', temp_list)

明月笑刀无情

使用清单maximum = 0modes = []for num in num_count:    count = num_count[num]    if count > maximum:        maximum = count    if count == maximum:        modes.append(num)print('Mode: ', modes)
随时随地看视频慕课网APP

相关分类

Python
我要回答