python求众数程序_python求众数问题实例

本文提供了一个Python程序,用于解决求众数的问题。通过读取文件中的数据,利用字典存储元素及其出现次数,找到并输出重数最多的元素及次数。在给定的测试案例中,输入文件input.txt包含8个元素,众数37出现了3次。
摘要由CSDN通过智能技术生成

本文实例讲述了python求众数问题的方法,是一个比较典型的应用。分享给大家供大家参考。具体如下:

问题描述:

多重集中重数最大的元素称为众数...就是一个可以有重复元素的集合,在这个集合中重复的次数最多的那个数就叫它的众数...

如S = [1,2,2,2,3,5] 重数是2,其重数为3

实例代码如下:

list_num = []

list_num_count = 0

dict_num ={}

#从文件读入,文件第一行为集合中元素的个数,以后每一行为一个元素

list_num_count = int(open('input.txt','r').readline())

for line_num, line in enumerate(open("input.txt",'r')):

if line_num > 0:

list_num += line.split()

#将读到的元素加入的字典中

for item in list_num:

if dict_num.has_key(item):

dict_num[item] += 1

else:

dict_num.setdefault(item,1)

pass

#找到出现次数最多的那个数,找到重数

dict_sort_by_top = {}

top_value = 0

for valus in dict_num.itervalues():

if valus> top_value:

top_value = valus

pass

#根据重数找到众数...这是因为考虑到可能有多个元素有相同多的重数

the_pop_num = 0

the_pop_num_count = 0

for keys,values in dict_num.iteritems():

if values == top_value:

print 'the pop num is %s,and the appear num is %s' % (keys,values)

the_pop_num = keys

the_pop_num_count = values

#输出到文件,第一行为从数,第二行为重数

write_line = '%s\n%s' %(the_pop_num, the_pop_num_count)

open("output.txt",'w').write(write_line)

这里假设有同级目录文件input.txt内容如下:

8

11

37

2

37

2

45

99

37

第一行的8代表元素个数,其后每一行有一个元素。

测试环境为Python2.7.6,

Python程序针对input.txt文件操作的运行结果如下:

the pop num is 37,and the appear num is 3

同时生成output.txt文件记录了众数37及其重复次数3。

希望本文所述对大家的Python程序设计有所帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值