溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python如何使用計(jì)數(shù)器進(jìn)行元素計(jì)數(shù)

發(fā)布時(shí)間:2022-03-17 14:50:17 來源:億速云 閱讀:281 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)python如何使用計(jì)數(shù)器進(jìn)行元素計(jì)數(shù)的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

使用計(jì)數(shù)器進(jìn)行元素計(jì)數(shù)

當(dāng)我們在列表、元組或字符串中有多個(gè)項(xiàng)目時(shí)(例如,多個(gè)字符),我們經(jīng)常想計(jì)算每項(xiàng)中有多少個(gè)元素。為此,可以為此功能編寫一些乏味的代碼。

>>> words = ['an', 'boy', 'girl', 'an', 'boy', 'dog', 'cat', 'Dog', 'CAT', 'an','GIRL', 'AN', 'dog', 'cat', 'cat', 'bag', 'BAG', 'BOY', 'boy', 'an'] ... unique_words = {x.lower() for x in set(words)} ... for word in unique_words: ...     print(f"* Count of {word}: {words.count(word)}") ... * Count of cat: 3 * Count of bag: 1 * Count of boy: 3 * Count of dog: 2 * Count of an: 5 * Count of girl: 1

如上所示,我們首先必須創(chuàng)建一個(gè)僅包含唯一單詞的集合。然后,我們迭代單詞集,并使用該count()方法找出每個(gè)單詞的出現(xiàn)情況。但是,有一種更好的方法可以使用Counter類來完成此計(jì)數(shù)任務(wù)。

>>> from collections import Counter ... ... word_counter = Counter(x.lower() for x in words) ... print("Word Counts:", word_counter) ... Word Counts: Counter({'an': 5, 'boy': 4, 'cat': 4, 'dog': 3, 'girl': 2, 'bag': 2})

該計(jì)數(shù)器類是在collections模塊中可用的。要使用該類,我們只需創(chuàng)建一個(gè)generator:,x.lower() for x in  words每個(gè)項(xiàng)目都將被計(jì)數(shù)。如我們所見,Counter對(duì)象是類似dict的映射對(duì)象,每個(gè)鍵對(duì)應(yīng)于單詞列表的唯一項(xiàng),而值是這些項(xiàng)的計(jì)數(shù)。

此外,如果我們有興趣找出單詞列表中最頻繁出現(xiàn)的項(xiàng)目,我們可以利用Counter對(duì)象的most_common()方法。以下代碼展示了這種用法。我們只需要指定一個(gè)整數(shù)(N),即可從列表中找出最頻繁的N個(gè)項(xiàng)目。附帶說明,該對(duì)象還將與其他序列數(shù)據(jù)一起使用,例如字符串和元組。

>>> # Find out the most common item ... print("Most Frequent:", word_counter.most_common(1)) Most Frequent: [('an', 5)] >>> # Find out the most common 2 items ... print("Most Frequent:", word_counter.most_common(2)) Most Frequent: [('an', 5), ('boy', 4)]

感謝各位的閱讀!關(guān)于“python如何使用計(jì)數(shù)器進(jìn)行元素計(jì)數(shù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI