日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python counter转换为列表_Python标准库---collections.counter

發布時間:2023/12/18 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python counter转换为列表_Python标准库---collections.counter 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

更多

2

最近在看一本名叫《Python Algorithm: Mastering Basic Algorithms in the Python Language》的書,剛好看到提到這個Counter類(P84的Listing 4.6下的Tip)。

1.collections模塊

collections模塊自Python 2.4版本開始被引入,包含了dict、set、list、tuple以外的一些特殊的容器類型,分別是:

OrderedDict類:排序字典,是字典的子類。引入自2.7。

namedtuple()函數:命名元組,是一個工廠函數。引入自2.6。

Counter類:為hashable對象計數,是字典的子類。引入自2.7。

deque:雙向隊列。引入自2.4。

defaultdict:使用工廠函數創建字典,使不用考慮缺失的字典鍵。引入自2.5。

2.Counter類

Counter類的目的是用來跟蹤值出現的次數。它是一個無序的容器類型,以字典的鍵值對形式存儲,其中元素作為key,其計數作為value。計數值可以是任意的Interger(包括0和負數)。Counter類和其他語言的bags或multisets很相似。

2.1 創建

下面的代碼說明了Counter類創建的四種方法:

Counter類的創建

Python

>>> c = Counter() # 創建一個空的Counter類

>>> c = Counter('gallahad') # 從一個可iterable對象(list、tuple、dict、字符串等)創建

>>> c = Counter({'a': 4, 'b': 2}) # 從一個字典對象創建

>>> c = Counter(a=4, b=2) # 從一組鍵值對創建

2.2 計數值的訪問與缺失的鍵

當所訪問的鍵不存在時,返回0,而不是KeyError;否則返回它的計數。

計數值的訪問

Python

>>> c = Counter("abcdefgab")

>>> c["a"]

2

>>> c["c"]

1

>>> c["h"]

0

2.3 計數器的更新(update和subtract)

可以使用一個iterable對象或者另一個Counter對象來更新鍵值。

計數器的更新包括增加和減少兩種。其中,增加使用update()方法:

計數器的更新(update)

Python

>>> c = Counter('which')

>>> c.update('witch') # 使用另一個iterable對象更新

>>> c['h']

3

>>> d = Counter('watch')

>>> c.update(d) # 使用另一個Counter對象更新

>>> c['h']

4

減少則使用subtract()方法:

計數器的更新(subtract)

Python

>>> c = Counter('which')

>>> c.subtract('witch') # 使用另一個iterable對象更新

>>> c['h']

1

>>> d = Counter('watch')

>>> c.subtract(d) # 使用另一個Counter對象更新

>>> c['a']

-1

2.4 鍵的刪除

當計數值為0時,并不意味著元素被刪除,刪除元素應當使用del。

鍵的刪除

Python

>>> c = Counter("abcdcba")

>>> c

Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})

>>> c["b"] = 0

>>> c

Counter({'a': 2, 'c': 2, 'd': 1, 'b': 0})

>>> del c["a"]

>>> c

Counter({'c': 2, 'b': 2, 'd': 1})

2.5 elements()

返回一個迭代器。元素被重復了多少次,在該迭代器中就包含多少個該元素。所有元素按照字母序排序,個數小于1的元素不被包含。

elements()方法

Python

>>> c = Counter(a=4, b=2, c=0, d=-2)

>>> list(c.elements())

['a', 'a', 'a', 'a', 'b', 'b']

2.6 most_common([n])

返回一個TopN列表。如果n沒有被指定,則返回所有元素。當多個元素計數值相同時,按照字母序排列。

most_common()方法

Python

>>> c = Counter('abracadabra')

>>> c.most_common()

[('a', 5), ('r', 2), ('b', 2), ('c', 1), ('d', 1)]

>>> c.most_common(3)

[('a', 5), ('r', 2), ('b', 2)]

2.7 fromkeys

未實現的類方法。

2.8 淺拷貝copy

淺拷貝copy

Python

>>> c = Counter("abcdcba")

>>> c

Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})

>>> d = c.copy()

>>> d

Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})

2.9 算術和集合操作

+、-、&、|操作也可以用于Counter。其中&和|操作分別返回兩個Counter對象各元素的最小值和最大值。需要注意的是,得到的Counter對象將刪除小于1的元素。

Counter對象的算術和集合操作

Python

>>> c = Counter(a=3, b=1)

>>> d = Counter(a=1, b=2)

>>> c + d # c[x] + d[x]

Counter({'a': 4, 'b': 3})

>>> c - d # subtract(只保留正數計數的元素)

Counter({'a': 2})

>>> c & d # 交集: min(c[x], d[x])

Counter({'a': 1, 'b': 1})

>>> c | d # 并集: max(c[x], d[x])

Counter({'a': 3, 'b': 2})

3.常用操作

下面是一些Counter類的常用操作,來源于Python官方文檔

Counter類常用操作

Python

sum(c.values()) # 所有計數的總數

c.clear() # 重置Counter對象,注意不是刪除

list(c) # 將c中的鍵轉為列表

set(c) # 將c中的鍵轉為set

dict(c) # 將c中的鍵值對轉為字典

c.items() # 轉為(elem, cnt)格式的列表

Counter(dict(list_of_pairs)) # 從(elem, cnt)格式的列表轉換為Counter類對象

c.most_common()[:-n:-1] # 取出計數最少的n個元素

c += Counter() # 移除0和負值

總結

以上是生活随笔為你收集整理的python counter转换为列表_Python标准库---collections.counter的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品电影院 | 国产精品videossex国产高清 | 欧美伦理片 | 亚洲国产第一区 | 国产黄a三级三级三级看三级男男 | 亚洲激情偷拍 | 自拍偷拍色综合 | 亚洲视频区 | 欧美亚洲色综久久精品国产 | 男女性生活视频网站 | 亚洲免费在线视频 | 久久精品久久精品久久 | 成人18网站| 亚洲网址在线观看 | 欧美黑吊大战白妞欧美大片 | 久久噜噜色综合一区二区 | 美脚の诱脚舐め脚视频播放 | 变态另类丨国产精品 | 一区二区三区高清 | 国产黑丝在线视频 | 日韩视频国产 | 国产午夜精品福利视频 | 国产免费无码一区二区视频 | 综合色伊人 | 韩国在线不卡 | 欧美激情精品久久久久久变态 | 男女免费毛片 | 999久久久免费精品国产 | 已满十八岁免费观看 | 国模叶桐尿喷337p人体 | 四虎影院污 | 国产视频一区二区在线播放 | 精品一区二区三区在线播放 | 成人在线视频播放 | 69久久久久久 | 综合另类 | 蜜臀av性久久久久av蜜臀妖精 | 亚洲国产精品久久久久 | 狐狸视频污 | 国产成人精品影视 | 欧美黄色特级视频 | 91精品久久久久久久久 | 中文字幕免费一区 | 国产精品性爱在线 | 国产黄色一级网站 | 久久天天躁狠狠躁夜夜躁 | 国产男人的天堂 | 神马午夜电影一区二区三区在线观看 | 亚洲天天看 | 青青草自拍偷拍 | 久久aaa| 欧美日韩中文字幕在线观看 | 国产精品av在线播放 | 国产美女无遮挡网站 | 夜色一区二区 | 国产精品一区二区无码免费看片 | 午夜福利三级理论电影 | 少妇太紧太爽又黄又硬又爽 | www一级片| 国产一卡二卡三卡 | 国产成人精品一区二三区 | 人人爱人人搞 | 在线免费小视频 | 西西人体高清44rt·net | 99视频观看 | 亚洲欧美国产视频 | 国产真实夫妇交换视频 | 青青青操| 日日夜夜国产精品 | 亚洲激情一区二区三区 | h片在线免费看 | 久久福利小视频 | 亚洲综合热 | 中文字幕av在线播放 | 在线免费看黄av | 深爱五月综合网 | 奇米色播| 精品国产黄色 | 自拍偷拍色图 | 熟妇大屁股一区二区三区视频 | 日韩中文字幕免费在线观看 | 成人黄色在线 | 很黄很污的视频网站 | 欧美.www| 殴美一区二区 | 最近中文字幕在线中文高清版 | 亚洲人免费 | 国产精品成人久久久 | 欧美xxxx黑人xyx性爽 | 国产亚洲天堂 | 国产乱码精品一品二品 | 日本三级吃奶头添泬 | 偷啪自啪 | 亚洲精品动漫在线观看 | 高清乱码免费看污 | 久久东京 | 亚洲av无码乱码国产精品 | 美女光屁屁露胸胸 | 宅男的天堂 |