首頁 >後端開發 >Python教學 >如何有效率地統計Python無序列表中的元素頻率?

如何有效率地統計Python無序列表中的元素頻率?

Linda Hamilton
Linda Hamilton原創
2025-01-03 17:28:40690瀏覽

How to Efficiently Count Element Frequencies in an Unordered Python List?

取得無序列表中元素的頻率

考慮一個無序列表,例如a = [5, 1, 2, 2, 4、3、1、2、3、1、1、5、2]。目標是確定清單中每個唯一值的頻率。期望的輸出類似 b = [4, 4, 2, 1, 2],表示值 1 出現四次,2 出現四次,3 出現兩次,4 出現一次,5 出現兩次。

在 Python 中,此任務的一個便利解決方案是利用 collections.Counter 類別。在Python 2.7 及更高版本中,此類簡化了對無序集合中元素出現次數進行計數的過程:

import collections

a = [5, 1, 2, 2, 4, 3, 1, 2, 3, 1, 1, 5, 2]
counter = collections.Counter(a)

collections.Counter 物件counter,保存清單中每個唯一值的計數。您可以使用各種方法存取計數:

  • counter.values():傳回包含每個唯一值的計數的清單。
  • counter.keys():傳回一個清單包含清單中的唯一值。
  • counter.most_common(n):傳回包含n 個最常出現的值的元組列表,
  • dict(counter):將Counter 物件轉換為常規字典,其中鍵作為唯一常規字典,其中鍵作為唯一常規字典值,值作為計數。

按照指定的順序獲取計數在問題中,您可以按排序順序迭代鍵:

[counter[x] for x in sorted(counter.keys())]

如果您使用的是Python 2.6 或更早版本,您可以下載來自提供的連結的collections.Counter 的實現,並在您的程式碼中使用它。

以上是如何有效率地統計Python無序列表中的元素頻率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn