python求眾數程式 python求眾數問題例項

2021-10-17 01:14:54 字數 1310 閱讀 6177

問題描述:

多重集中重數最大的元素稱為眾數...就是乙個可以有重複元素的集合,在這個集合中重複的次數最多的那個數就叫它的眾數...

如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:

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代表元素個數,其後每一行有乙個元素。

測試環境為python2.7.6,

python程式針對input.txt檔案操作的執行結果如下:

同時生成output.txt檔案記錄了眾數37及其重複次數3。

Leetcode 求眾數 Python實現

題目 求眾數 給定乙個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在眾數。示例 輸入 3,2,3 輸出 3 輸入 2,2,1,1,1,2,2 輸出 2 分析 馬上能想到的,就是構建數頻字典,然後找出數量大於n 2的元素即...

如何用Python求眾數

max set a key a.count 它可以返回列表a中的眾數,現對其進行解釋。部落格 python set 用法.中提到 set 函式用於建立乙個無序不重複元素集,刪除重複資料。不過直接用max a,key a.count 結果是一樣的。關於max 函式中的引數key,python官方文件中...

169 求眾數 229 求眾數 II

不限定時間複雜度的話,很多人會先排序,再遍歷的方法來做。不限定空間複雜度的話,很多人會用hash表來做。那麼,有了這兩個限定,就只能用摩爾投票演算法了。主元素問題典型解法。摩爾投票演算法 時間複雜度o n 空間複雜度o 1 class solution else if nums i ans cnt ...