Python代碼閱讀(第39篇):獲取列表出現頻率最高的元素


Python 代碼閱讀合集介紹:為什么不推薦Python初學者直接看項目源碼

本篇閱讀的代碼實現了獲取列表中出現頻率最高的元素的功能。

本篇閱讀的代碼片段來自於30-seconds-of-python

most_frequent

def most_frequent(list):
  return max(set(list), key=list.count)

# EXAMPLES
most_frequent([1, 2, 1, 2, 3, 2, 1, 4, 2]) #2

most_frequent函數接收一個列表,返回出現頻率最高的元素。

函數利用set(list)獲取列表中元素的集合(去除重復元素),再使用maxlist.count尋找出現頻率最高的元素。

set([iterable])方法從一個可迭代對象構建一個集合,集合容器中的元素具有唯一性,常用來進行成員檢測、從序列中去除重復項以及數學中的集合類計算等。在本代碼片段中,用於對傳入的list參數進行去重。

>>> set([1, 2, 1, 2, 3, 2, 1, 4, 2])
{1, 2, 3, 4}

max(set(list), key=list.count)函數會根據關鍵詞參數key=list.count所指定帶有一個參數的函數,用於從每個列表元素中提取比較鍵。list.count(x)會返回xlist中出現的次數。max函數會返回比較鍵(出現次數)最大的元素。

>>> [1, 2, 1, 2, 3, 2, 1, 4, 2].count(1)
3
>>> [1, 2, 1, 2, 3, 2, 1, 4, 2].count(2)
4
>>> [1, 2, 1, 2, 3, 2, 1, 4, 2].count(3)
1
>>> [1, 2, 1, 2, 3, 2, 1, 4, 2].count(4)
1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM