如何用Python求眾數

2021-10-09 14:09:42 字數 1006 閱讀 1538

max

(set

(a),key=a.count)

它可以返回列表a中的眾數,現對其進行解釋。

部落格 python set() 用法.中提到:set() 函式用於建立乙個無序不重複元素集,刪除重複資料。不過直接用max(a,key=a.count),結果是一樣的。

關於max()函式中的引數key,python官方文件中寫道:the key argument specifies a one-argument ordering function like that used for list.sort().

在論壇中搜尋,一般情況下會用匿名函式lambda指定key,例如:

a=[3

,5,5

,5,1

]max_a=

max(a,key=

lambda x: x-1)

print

(max_a)

#結果:5

但若是函式較為複雜,可以先def乙個函式,而後將函式名傳給key,例如:

def

calculate

(x):

return

-(x-3)

^2a=[

3,5,

5,5,

1]max_a=

max(a,key=calculate)

print

(max_a)

#結果:3

因此猜想,方法也類同函式,因此可以將list.count(不需要寫括號和實參)傳給key,但list可以用於max的方法(要有返回值,且返回值可用於比較大小)只有.count(),故此猜想沒有得到驗證。

此外,list.sort()也有可選引數key,其官方文件中寫到:for example, key=str.lower。此處同樣是直接呼叫方法而沒有寫括號(),與本例相同。

[1]王磊,王曉東著.機器學習演算法導論[m].北京:清華大學出版社,2019:182.

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

問題描述 多重集中重數最大的元素稱為眾數.就是乙個可以有重複元素的集合,在這個集合中重複的次數最多的那個數就叫它的眾數.如s 1,2,2,2,3,5 重數是2,其重數為3 例項 如下 list num list num count 0 dict num 從檔案讀入,檔案第一行為集合中元素的個數,以後...

Leetcode 求眾數 Python實現

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

169 求眾數 229 求眾數 II

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