亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python統(tǒng)計(jì)不同整數(shù)的出現(xiàn)次數(shù)的三種方法

 更新時(shí)間:2025年04月16日 08:26:43   作者:傻啦嘿喲  
在數(shù)據(jù)處理和分析領(lǐng)域,統(tǒng)計(jì)不同整數(shù)的出現(xiàn)次數(shù)是一個(gè)常見需求,無論是清洗日志數(shù)據(jù)、分析用戶行為,還是處理實(shí)驗(yàn)觀測(cè)值,我們都需要快速準(zhǔn)確地獲取不同整數(shù)的數(shù)量,本文將用通俗的語言,結(jié)合Python代碼示例,為你系統(tǒng)講解三種主流解決方案,需要的朋友可以參考下

一、問題定義:什么是"不同整數(shù)的計(jì)數(shù)"?

假設(shè)有一個(gè)包含重復(fù)整數(shù)的列表:[1, 2, 3, 4, 2, 3, 4, 5],我們需要統(tǒng)計(jì)其中有多少個(gè)不重復(fù)的整數(shù)。答案顯然是5個(gè)(1,2,3,4,5)。

這個(gè)問題看似簡(jiǎn)單,但實(shí)際應(yīng)用中常伴隨復(fù)雜場(chǎng)景:

  • 數(shù)據(jù)量龐大(百萬級(jí)甚至億級(jí))
  • 需要實(shí)時(shí)統(tǒng)計(jì)
  • 內(nèi)存資源有限
  • 需要同時(shí)獲取出現(xiàn)次數(shù)

二、解決方案一:集合去重法(適合基礎(chǔ)場(chǎng)景)

核心思路:利用集合(Set)元素的唯一性自動(dòng)去重。

my_list = [1, 2, 3, 4, 2, 3, 4, 5]
unique_values = set(my_list)  # 轉(zhuǎn)換為集合
count = len(unique_values)    # 獲取集合長(zhǎng)度
print(count)  # 輸出:5

原理說明:

  • set()函數(shù)將列表轉(zhuǎn)換為集合,自動(dòng)過濾重復(fù)元素
  • 集合的查找時(shí)間復(fù)雜度為O(1),適合快速判斷元素存在性
  • 最終通過len()函數(shù)獲取集合大小,即不同整數(shù)數(shù)量

性能特點(diǎn):

  • 時(shí)間復(fù)雜度:O(n)(轉(zhuǎn)換集合)
  • 空間復(fù)雜度:O(n)(存儲(chǔ)唯一值)
  • 優(yōu)點(diǎn):代碼簡(jiǎn)潔,執(zhí)行速度快
  • 缺點(diǎn):無法獲取具體出現(xiàn)次數(shù)

三、解決方案二:字典計(jì)數(shù)法(適合需要頻次的場(chǎng)景)

核心思路:用字典存儲(chǔ)每個(gè)整數(shù)的出現(xiàn)次數(shù),最后統(tǒng)計(jì)字典鍵的數(shù)量。

my_list = [1, 2, 3, 4, 2, 3, 4, 5]
count_dict = {}
 
for num in my_list:
    count_dict[num] = count_dict.get(num, 0) + 1  # 存在則+1,否則初始化為1
 
count = len(count_dict)
print(count)  # 輸出:5

原理說明:

  • 遍歷列表時(shí),用get()方法安全獲取當(dāng)前計(jì)數(shù)值
  • count_dict.get(num, 0)表示:若num存在則返回計(jì)數(shù)值,否則返回0
  • 最終通過字典的鍵數(shù)量獲取不同整數(shù)數(shù)量

擴(kuò)展應(yīng)用:

  • 獲取具體出現(xiàn)次數(shù):print(count_dict) 輸出{1:1, 2:2, 3:2, 4:2, 5:1}
  • 查找最頻繁整數(shù):max(count_dict, key=count_dict.get)

性能特點(diǎn):

  • 時(shí)間復(fù)雜度:O(n)(單次遍歷)
  • 空間復(fù)雜度:O(n)(存儲(chǔ)所有鍵值對(duì))
  • 優(yōu)點(diǎn):可獲取詳細(xì)頻次信息
  • 缺點(diǎn):相比集合法需要額外存儲(chǔ)空間

四、解決方案三:collections.Counter(專業(yè)統(tǒng)計(jì)工具)

核心思路:使用Python標(biāo)準(zhǔn)庫中的Counter類,專為計(jì)數(shù)設(shè)計(jì)。

from collections import Counter
 
my_list = [1, 2, 3, 4, 2, 3, 4, 5]
counter = Counter(my_list)  # 自動(dòng)統(tǒng)計(jì)頻次
count = len(counter)        # 獲取唯一值數(shù)量
print(count)  # 輸出:5

進(jìn)階用法:

# 獲取出現(xiàn)次數(shù)最多的3個(gè)整數(shù)
print(counter.most_common(3))  # 輸出:[(2, 2), (3, 2), (4, 2)]
 
# 數(shù)學(xué)運(yùn)算(支持加減交并集)
counter2 = Counter([5,6,6,7])
print(counter + counter2)  # 合并統(tǒng)計(jì)
print(counter & counter2)  # 交集統(tǒng)計(jì)

性能特點(diǎn):

  • 時(shí)間復(fù)雜度:O(n)(與字典法相當(dāng))
  • 空間復(fù)雜度:O(n)
  • 優(yōu)點(diǎn):內(nèi)置豐富統(tǒng)計(jì)方法,代碼最簡(jiǎn)潔
  • 缺點(diǎn):需要導(dǎo)入標(biāo)準(zhǔn)庫

五、性能對(duì)比與選型建議

方法時(shí)間復(fù)雜度空間復(fù)雜度適用場(chǎng)景
集合去重法O(n)O(n)僅需簡(jiǎn)單計(jì)數(shù)
字典計(jì)數(shù)法O(n)O(n)需要頻次信息的中小型數(shù)據(jù)
Counter類O(n)O(n)需要復(fù)雜統(tǒng)計(jì)的大型數(shù)據(jù)

選型建議:

  • 數(shù)據(jù)量小且無需頻次信息 → 集合去重法
  • 需要頻次但數(shù)據(jù)量中等 → 字典計(jì)數(shù)法
  • 專業(yè)數(shù)據(jù)分析/大數(shù)據(jù)場(chǎng)景 → collections.Counter

六、實(shí)戰(zhàn)案例:日志分析中的IP統(tǒng)計(jì)

需求:統(tǒng)計(jì)服務(wù)器日志中不同IP的訪問次數(shù),找出訪問最頻繁的10個(gè)IP。

from collections import Counter
 
# 模擬日志數(shù)據(jù)(每行包含IP地址)
log_lines = [
    "192.168.1.1 - - [timestamp] \"GET / HTTP/1.1\"",
    "10.0.0.5 - - [timestamp] \"POST /api\"",
    "192.168.1.1 - - [timestamp] \"GET /css/style.css\"",
    # ...(百萬級(jí)日志數(shù)據(jù))
]
 
# 提取IP地址
ips = [line.split()[0] for line in log_lines]
 
# 統(tǒng)計(jì)并輸出結(jié)果
ip_counter = Counter(ips)
print("不同IP數(shù)量:", len(ip_counter))
print("Top10 IP:", ip_counter.most_common(10))

代碼解釋:

  • 使用列表推導(dǎo)式高效提取IP地址
  • Counter自動(dòng)處理百萬級(jí)數(shù)據(jù)統(tǒng)計(jì)
  • most_common(10)直接獲取高頻IP

七、總結(jié):智能時(shí)代的計(jì)數(shù)利器

不同整數(shù)的計(jì)數(shù)問題看似簡(jiǎn)單,實(shí)則蘊(yùn)含多種解決方案。在Python生態(tài)中:

  • 集合提供了最基礎(chǔ)的去重能力
  • 字典實(shí)現(xiàn)了頻次統(tǒng)計(jì)的基礎(chǔ)需求
  • collections.Counter則是專業(yè)級(jí)統(tǒng)計(jì)工具

隨著數(shù)據(jù)規(guī)模的增長(zhǎng),合理選擇數(shù)據(jù)結(jié)構(gòu)變得尤為重要。對(duì)于智能時(shí)代的開發(fā)者而言,掌握這些計(jì)數(shù)方法,就如同擁有了精準(zhǔn)的數(shù)字顯微鏡,能夠高效洞察數(shù)據(jù)背后的規(guī)律。

以上就是Python統(tǒng)計(jì)不同整數(shù)的出現(xiàn)次數(shù)的三種方法的詳細(xì)內(nèi)容,更多關(guān)于Python統(tǒng)計(jì)不同整數(shù)出現(xiàn)次數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python3.8如何解決No module named 'numpy'報(bào)錯(cuò)問題

    Python3.8如何解決No module named 'numpy&apos

    這篇文章主要介紹了Python3.8如何解決No module named 'numpy'報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 用Python讀取幾十萬行文本數(shù)據(jù)

    用Python讀取幾十萬行文本數(shù)據(jù)

    今天小編就為大家分享一篇關(guān)于用Python讀取幾十萬行文本數(shù)據(jù),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Python 如何操作 SQLite 數(shù)據(jù)庫

    Python 如何操作 SQLite 數(shù)據(jù)庫

    這篇文章主要介紹了Python 如何操作 SQLite 數(shù)據(jù)庫,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • Python+Matplotlib繪制高亮顯示餅圖的示例代碼

    Python+Matplotlib繪制高亮顯示餅圖的示例代碼

    餅圖 (Pie Chart) 是一種圓形統(tǒng)計(jì)圖,被分割成片用于表示數(shù)值間的比例關(guān)系,本文為大家介紹了Matplotlib繪制高亮顯示的餅圖的函數(shù)源碼,需要的可以參考一下
    2023-06-06
  • python mysql實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)

    python mysql實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python mysql實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • PyCharm代碼提示忽略大小寫設(shè)置方法

    PyCharm代碼提示忽略大小寫設(shè)置方法

    今天小編就為大家分享一篇PyCharm代碼提示忽略大小寫設(shè)置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法

    Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法

    下面小編就為大家分享一篇Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python怎么調(diào)用自己的函數(shù)

    python怎么調(diào)用自己的函數(shù)

    在本篇文章里小編給大家分享了關(guān)于python調(diào)用自己的函數(shù)的實(shí)例方法,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-07-07
  • OpenCV半小時(shí)掌握基本操作之圖像金字塔

    OpenCV半小時(shí)掌握基本操作之圖像金字塔

    這篇文章主要介紹了OpenCV基本操作之圖像金字塔,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • python 測(cè)試實(shí)現(xiàn)方法

    python 測(cè)試實(shí)現(xiàn)方法

    使用python進(jìn)行測(cè)試也足夠簡(jiǎn)明了
    2008-12-12

最新評(píng)論