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

Python內(nèi)建模塊collections實(shí)現(xiàn)特殊容器數(shù)據(jù)類型

 更新時(shí)間:2023年06月25日 08:49:06   作者:小小張說(shuō)故事  
collections模塊是Python的內(nèi)建模塊之一,它實(shí)現(xiàn)了特殊的容器數(shù)據(jù)類型,提供了Python內(nèi)建的數(shù)據(jù)類型dict、list、set、和tuple的高效替代選擇

一、namedtuple

namedtuple() 函數(shù)是一個(gè)工廠函數(shù),它返回一個(gè)子類,這個(gè)子類繼承自 tuple 類,并且擁有名字,這個(gè)名字就是你傳給 namedtuple() 的第一個(gè)參數(shù)。這個(gè)子類的實(shí)例就像一個(gè)普通的元組,但是還提供了方便的屬性訪問(wèn)。

namedtuple是一種定義小型和不可變的數(shù)據(jù)類的簡(jiǎn)單方法。

from collections import namedtuple
# 創(chuàng)建一個(gè)namedtuple類型User,并包含name和age兩個(gè)屬性。
User = namedtuple('User', ['name', 'age'])
# 創(chuàng)建一個(gè)User對(duì)象
user = User(name='user1', age=23)
print(user.name)  # 輸出:user1
print(user.age)   # 輸出:23

二、deque

deque(雙向隊(duì)列)是一種來(lái)自 collections 模塊的容器,它提供了從左端和右端高效、快速地添加和刪除元素的功能。

from collections import deque
# 創(chuàng)建一個(gè)deque
d = deque(['a', 'b', 'c'])
# 從右端添加元素
d.append('d')     # d現(xiàn)在是deque(['a', 'b', 'c', 'd'])
# 從左端添加元素
d.appendleft('e')  # d現(xiàn)在是deque(['e', 'a', 'b', 'c', 'd'])
# 從右端刪除元素
d.pop()           # 返回 'd', d現(xiàn)在是deque(['e', 'a', 'b', 'c'])
# 從左端刪除元素
d.popleft()        # 返回 'e', d現(xiàn)在是deque(['a', 'b', 'c'])

三、Counter

collections模塊的Counter類是一個(gè)簡(jiǎn)單的計(jì)數(shù)器,例如,它可以用來(lái)統(tǒng)計(jì)字符的個(gè)數(shù):

from collections import Counter
c = Counter('hello world')  # 從一個(gè)可迭代對(duì)象創(chuàng)建
print(c)  # 輸出 Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})

Counter對(duì)象有一個(gè)有用的方法most_common(n),該方法返回計(jì)數(shù)最多的n個(gè)元素的列表,每個(gè)元素是一個(gè)元組,元組的第一個(gè)元素是元素本身,第二個(gè)元素是元素的計(jì)數(shù)。

四、defaultdict

defaultdict是dict的一個(gè)子類,它接受一個(gè)工廠函數(shù)作為默認(rèn)值,當(dāng)查找的鍵不存在時(shí),可以實(shí)例化一個(gè)值作為默認(rèn)值。

from collections import defaultdict
# 使用列表(list)作為default_factory,當(dāng)鍵不存在時(shí),返回一個(gè)空列表。
dd = defaultdict(list)
# 添加一個(gè)鍵值對(duì)
dd['dogs'].append('Rufus')
dd['dogs'].append('Kathrin')
dd['dogs'].append('Mr Sniffles')
print(dd['dogs'])  # 輸出: ['Rufus', 'Kathrin', 'Mr Sniffles']

五、OrderedDict

OrderedDict是dict的一個(gè)子類,它記住了元素插入的順序。在Python 3.7之前,普通的dict并不保證鍵值對(duì)的順序,而OrderedDict則按照插入的順序排列元素。

從Python 3.7開(kāi)始,dict也會(huì)保持插入順序,但是OrderedDict仍然有它的特性,如重新排列字典的順序等。

from collections import OrderedDict
d = OrderedDict()
d['first'] = 1
d['second'] = 2
d['third'] = 3
d['last'] = 4
# 輸出 "first 1", "second 2", "third 3", "last 4"
for key in d:
    print(key, d[key])

六、結(jié)論

collections模塊中還包含有其他有用的工具,如ChainMap、UserDict、UserList等等,這些都是非常實(shí)用的集合類。使用和理解這些數(shù)據(jù)結(jié)構(gòu)可以讓我們?cè)诰幊讨懈拥眯膽?yīng)手,代碼更加高效和清晰。

上述這些是 collections 模塊中最常用的一些數(shù)據(jù)結(jié)構(gòu),理解和熟練使用這些工具,可以極大提高我們編程的效率。希望這篇文章能幫助你深入理解Python中的collections模塊,能夠更好的使用Python進(jìn)行編程。

以上就是Python內(nèi)建模塊collections實(shí)現(xiàn)特殊容器數(shù)據(jù)類型的詳細(xì)內(nèi)容,更多關(guān)于Python collections模塊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳談Pandas中iloc和loc以及ix的區(qū)別

    詳談Pandas中iloc和loc以及ix的區(qū)別

    今天小編就為大家分享一篇詳談Pandas中iloc和loc以及ix的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • python保留小數(shù)位的三種實(shí)現(xiàn)方法

    python保留小數(shù)位的三種實(shí)現(xiàn)方法

    本文給大家分享python保留小數(shù)位的三種方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Flask框架通過(guò)Flask_login實(shí)現(xiàn)用戶登錄功能示例

    Flask框架通過(guò)Flask_login實(shí)現(xiàn)用戶登錄功能示例

    這篇文章主要介紹了Flask框架通過(guò)Flask_login實(shí)現(xiàn)用戶登錄功能,結(jié)合實(shí)例形式較為詳細(xì)的分析了flask框架使用Flask_login實(shí)現(xiàn)用戶登陸功能的具體操作步驟、相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • 解決Python爬蟲(chóng)錯(cuò)誤之twisted.web.error.SchemeNotSupported: Unsupported scheme: b''

    解決Python爬蟲(chóng)錯(cuò)誤之twisted.web.error.SchemeNotSupported: Unsu

    這篇文章主要介紹了解決Python爬蟲(chóng)錯(cuò)誤之twisted.web.error.SchemeNotSupported: Unsupported scheme: b''問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python經(jīng)驗(yàn)總結(jié):兩種Type?Error問(wèn)題

    Python經(jīng)驗(yàn)總結(jié):兩種Type?Error問(wèn)題

    這篇文章主要介紹了Python經(jīng)驗(yàn)總結(jié):兩種Type?Error問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python應(yīng)用文件讀取與登錄注冊(cè)功能

    python應(yīng)用文件讀取與登錄注冊(cè)功能

    這篇文章主要介紹了python應(yīng)用文件讀取寫登錄注冊(cè)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python實(shí)現(xiàn)多子圖繪制系統(tǒng)的示例詳解

    Python實(shí)現(xiàn)多子圖繪制系統(tǒng)的示例詳解

    這篇文章主要介紹了如何利用python實(shí)現(xiàn)多子圖繪制系統(tǒng),文中的示例代碼講解詳細(xì),具有一定的的參考價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-09-09
  • python實(shí)現(xiàn)樸素貝葉斯算法

    python實(shí)現(xiàn)樸素貝葉斯算法

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)樸素貝葉斯算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • python開(kāi)發(fā)游戲的前期準(zhǔn)備

    python開(kāi)發(fā)游戲的前期準(zhǔn)備

    在本篇文章中我們給大家分享了關(guān)于python開(kāi)發(fā)游戲的前期準(zhǔn)備以及用到的工具等內(nèi)容,需要的朋友們跟著參考下。
    2019-05-05
  • 在OpenCV里實(shí)現(xiàn)條碼區(qū)域識(shí)別的方法示例

    在OpenCV里實(shí)現(xiàn)條碼區(qū)域識(shí)別的方法示例

    這篇文章主要介紹了在OpenCV里實(shí)現(xiàn)條碼區(qū)域識(shí)別的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評(píng)論