AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

Python的集合模塊,使用數(shù)據(jù)容器處理數(shù)據(jù)集合

來源: 責(zé)編: 時(shí)間:2023-11-08 09:11:31 313觀看
導(dǎo)讀簡介Python是一種功能強(qiáng)大的編程語言,可以簡化許多編程任務(wù)。它的標(biāo)準(zhǔn)庫中有一個(gè)collections模塊,提供了處理集合數(shù)據(jù)的有用容器數(shù)據(jù)類型。ChainMap類將多個(gè)字典合并為一個(gè)映射。Counter類用于計(jì)算列表或其他可迭代對(duì)象

簡介

Python是一種功能強(qiáng)大的編程語言,可以簡化許多編程任務(wù)。它的標(biāo)準(zhǔn)庫中有一個(gè)collections模塊,提供了處理集合數(shù)據(jù)的有用容器數(shù)據(jù)類型。7kO28資訊網(wǎng)——每日最新資訊28at.com

ChainMap類將多個(gè)字典合并為一個(gè)映射。Counter類用于計(jì)算列表或其他可迭代對(duì)象中元素的出現(xiàn)次數(shù)。OrderedDict類保持其鍵的插入順序。7kO28資訊網(wǎng)——每日最新資訊28at.com

還可以使用UserDict、UserList和UserString類創(chuàng)建常見數(shù)據(jù)類型的自定義版本。defaultdict類允許為字典中不存在的任何鍵指定默認(rèn)值。7kO28資訊網(wǎng)——每日最新資訊28at.com

deque類是一種雙端隊(duì)列,可以從兩端追加和彈出元素。namedtuple類創(chuàng)建具有命名字段的元組子類,使得處理復(fù)雜的數(shù)據(jù)結(jié)構(gòu)更加容易。7kO28資訊網(wǎng)——每日最新資訊28at.com

使用這些來自collections模塊的類可以簡化和優(yōu)化代碼。7kO28資訊網(wǎng)——每日最新資訊28at.com

1、ChainMap:合并多個(gè)字典

ChainMap類允許將多個(gè)字典合并為一個(gè)映射。當(dāng)用戶希望像處理單個(gè)實(shí)體一樣搜索多個(gè)字典時(shí),這非常有用。接下來看一下它是如何工作的:7kO28資訊網(wǎng)——每日最新資訊28at.com

from collections import ChainMapdict1 = {'a': 1, 'b': 2}dict2 = {'b': 3, 'c': 4}combined_dict = ChainMap(dict1, dict2)print(combined_dict['a'])  # 輸出:1 (from dict1)print(combined_dict['b'])  # 輸出:2 (from dict1)print(combined_dict['c'])  # 輸出:4 (from dict2)

2、Counter:計(jì)數(shù)可散列對(duì)象

Counter類是一種高效計(jì)數(shù)可散列對(duì)象的方法。它提供了一種清晰簡潔的方式來統(tǒng)計(jì)項(xiàng)目。以下是一個(gè)簡單的示例:7kO28資訊網(wǎng)——每日最新資訊28at.com

from collections import Counterdata = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]counter = Counter(data)print(counter)  # 輸出:Counter({4: 4, 3: 3, 2: 2, 1: 1})

3、OrderedDict:保持元素順序

OrderedDict類會(huì)記住項(xiàng)目插入的順序。在元素順序很重要的情況下,這一點(diǎn)至關(guān)重要。查看以下的示例:7kO28資訊網(wǎng)——每日最新資訊28at.com

from collections import OrderedDictordered_dict = OrderedDict()ordered_dict['b'] = 2ordered_dict['c'] = 3ordered_dict['a'] = 1print(list(ordered_dict.keys()))  # 輸出:['b', 'c', 'a']

4、UserDict、UserList、UserString:創(chuàng)建自定義容器

UserDict、UserList和UserString類提供了創(chuàng)建自定義字典類、列表類和字符串類對(duì)象的簡便方法。可以從這些類繼承,并根據(jù)需要自定義其行為。7kO28資訊網(wǎng)——每日最新資訊28at.com

from collections import UserDict, UserList, UserStringclass MyDictionary(UserDict):    def __missing__(self, key):        return f"Key '{key}' not found"my_dict = MyDictionary({'a': 1, 'b': 2})print(my_dict['c'])  # 輸出:Key 'c' not found

在這個(gè)示例中,本文定義了__missing__方法,如果不存在需要尋找的鍵,則返回一個(gè)指示未找到鍵的字符串,而不是像傳統(tǒng)字典那樣引發(fā)KeyError異常。7kO28資訊網(wǎng)——每日最新資訊28at.com

5、defaultdict:為缺失的鍵設(shè)置默認(rèn)值

defaultdict類是內(nèi)置字典類的一個(gè)子類。它會(huì)自動(dòng)為缺失的鍵提供默認(rèn)值,從而防止KeyError異常。下面是一個(gè)示例:7kO28資訊網(wǎng)——每日最新資訊28at.com

from collections import defaultdictfruit_count = defaultdict(int)fruit_count['apple'] += 1print(fruit_count['apple'])  # 輸出:1print(fruit_count['banana'])  # 輸出:0 (default value for int)

6、deque:雙端隊(duì)列

deque類實(shí)現(xiàn)了雙端隊(duì)列,對(duì)于從兩端高效地追加和彈出元素非常有用。它特別適用于實(shí)現(xiàn)隊(duì)列和堆棧。7kO28資訊網(wǎng)——每日最新資訊28at.com

from collections import dequequeue = deque()queue.append(1)queue.append(2)queue.append(3)queue.append(4)queue.append(5)print(queue.popleft())  # 輸出:1print(queue.popleft())  # 輸出:2print(queue.pop())  # 輸出:5print(queue) # 輸出:deque([3, 4])

7、namedtuple:命名元組以提高可讀性

namedtuple類創(chuàng)建了一種新類型的元組,可以使用命名屬性訪問其中的字段。這不僅提高了清晰度,還減少了由于索引不匹配而導(dǎo)致出錯(cuò)的幾率。7kO28資訊網(wǎng)——每日最新資訊28at.com

from collections import namedtuplePerson = namedtuple('Person', ['name', 'age', 'gender'])person = Person('Alice', 30, 'female')print(person) # 輸出:Person(name='Alice', age=30, gender='female')

結(jié)論

Python的collections模塊是開發(fā)人員處理數(shù)據(jù)集合時(shí)的有用工具。它提供了各種類,可以幫助完成合并字典、計(jì)數(shù)項(xiàng)和保持?jǐn)?shù)據(jù)順序等任務(wù)。通過使用這些類,可以使編碼過程更加高效。7kO28資訊網(wǎng)——每日最新資訊28at.com

此外,collections模塊還允許創(chuàng)建自定義容器,并使用特殊的數(shù)據(jù)結(jié)構(gòu),如deque和namedtuple。這些結(jié)構(gòu)可以進(jìn)一步增強(qiáng)編程能力,并幫助開發(fā)者輕松解決復(fù)雜的問題。7kO28資訊網(wǎng)——每日最新資訊28at.com

選擇正確的類對(duì)于任務(wù)非常重要,因?yàn)檫@可以簡化甚至最復(fù)雜的編碼挑戰(zhàn)。通過使用collections模塊,可以靈活選擇適合工作的正確工具,并使編碼過程更加高效。因此,請(qǐng)?zhí)剿鱟ollections模塊,看看它如何幫助完成編碼項(xiàng)目!7kO28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-17672-0.htmlPython的集合模塊,使用數(shù)據(jù)容器處理數(shù)據(jù)集合

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 多任務(wù)多場景問題解決方案與實(shí)踐

下一篇: 八個(gè)提升編程體驗(yàn)的VS Code插件

標(biāo)簽:
  • 熱門焦點(diǎn)
  • K6:面向開發(fā)人員的現(xiàn)代負(fù)載測試工具

    K6 是一個(gè)開源負(fù)載測試工具,可以輕松編寫、運(yùn)行和分析性能測試。它建立在 Go 和 JavaScript 之上,它被設(shè)計(jì)為功能強(qiáng)大、可擴(kuò)展且易于使用。k6 可用于測試各種應(yīng)用程序,包括 Web
  • 三言兩語說透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是兩種很有用的技術(shù),可以幫助我們寫出更加優(yōu)雅、泛用的函數(shù)。本文將首先介紹柯里化和反柯里化的概念、實(shí)現(xiàn)原理和應(yīng)用
  • 深度探索 Elasticsearch 8.X:function_score 參數(shù)解讀與實(shí)戰(zhàn)案例分析

    在 Elasticsearch 中,function_score 可以讓我們?cè)诓樵兊耐瑫r(shí)對(duì)搜索結(jié)果進(jìn)行自定義評(píng)分。function_score 提供了一系列的參數(shù)和函數(shù)讓我們可以根據(jù)需求靈活地進(jìn)行設(shè)置。近期
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對(duì)帶有指定屬性的 HTML 元素設(shè)置樣式??梢詾閾碛兄付▽傩缘?HTML 元素設(shè)置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡單而
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級(jí)不香了。俗話說,兵無常勢,水無常形,互聯(lián)網(wǎng)企業(yè)調(diào)整職級(jí)體系并不稀奇。7月13日,淘寶天貓集團(tuán)啟動(dòng)了近年來最大的人力制度改革,目前已形成一
  • 網(wǎng)紅炒股不為了賺錢,那就是耍流氓!

    來源:首席商業(yè)評(píng)論6月26日高調(diào)宣布入市,網(wǎng)絡(luò)名嘴大v胡錫進(jìn)居然進(jìn)軍了股市。在一次財(cái)經(jīng)媒體峰會(huì)上,幾個(gè)財(cái)經(jīng)圈媒體大佬就“胡錫進(jìn)炒股是否知道認(rèn)真報(bào)道”展開討論。有
  • 華為開發(fā)者大會(huì)2023日程公開:開設(shè)鴻蒙HarmonyOS 4體驗(yàn)區(qū)

    IT之家 7 月 31 日消息,華為今日公布了 HDC.Together 開發(fā)者大會(huì) 2023 的詳細(xì)日程。整場大會(huì)將于 8 月 4 日-6 日之間舉行,屆時(shí)將發(fā)布最新一代鴻蒙 H
  • iQOO Neo8 Pro評(píng)測:旗艦雙芯加持 最強(qiáng)性能游戲旗艦

    【Techweb評(píng)測】去年10月,iQOO推出了一款Neo7手機(jī),該機(jī)搭載了聯(lián)發(fā)科天璣9000+,配備獨(dú)顯芯片Pro+,帶來了同價(jià)位段最佳的游戲體驗(yàn),一經(jīng)上市便受到了諸多用
  • 機(jī)構(gòu)稱Q2全球智能手機(jī)出貨量同比下滑11% 蘋果份額依舊第2

    7月20日消息,據(jù)外媒報(bào)道,研究機(jī)構(gòu)的報(bào)告顯示,由于需求下滑,今年二季度全球智能手機(jī)的出貨量,同比下滑了11%,三星、蘋果等主要廠商的銷量,較去年同期均有下
Top