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)
獲取列表中元素的集合(去除重復元素),再使用max
和list.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)
會返回x
再list
中出現的次數。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