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

歡迎訪問 生活随笔!

生活随笔

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

python

python优雅编程_Python优雅编程——Collections模块中的高性能数据类型

發布時間:2025/3/15 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python优雅编程_Python优雅编程——Collections模块中的高性能数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python中內置了4 種數據類型,列表(List),元組(Tuple),集合(Set),字典(Dict)。這些數據類型都有其各自的特性,但是有些特性,比如字典無序,在一定程度上對數據類型的使用產生了約束,在某些場景下效率會比較低,Python collections 屬于對這些基礎數據類型的補充模塊。由于Python collections屬于內建模塊,因此不需要安裝。

接下來,我們介紹一下Python collections模塊常用的四種方法。

defaultdict:字典的子類,提供了一個工廠函數,為字典查詢提供一個默認值。

orderedDict:字典的子類,保存了他們被添加的順序。

deque:類似列表(List)的容器,實現了在兩端快速添加(append)和刪除(pop)。

Counter:字典的子類,提供了可哈希對象的計數功能。

defaultdict

我們在Python中使用字典時,當字典的鍵(Key)不存在時,直接添加值(Value)時會出現KeyError錯誤,示例如下。

使用defaultdict可以優雅的規避該錯誤,defaultdict 是對字典類型的補充,它可以給字典的值設置一個默認數據類型,當字典的鍵(Key)不存在時,可以自動生成相應默認類型的值(Value),示例如下:

在如上例子中,我們可以看到,即使defaultdict對象不存在某個鍵(Key)時,它會自動創建一個空列表。另外,同樣的功能使用 defaultdict 比使用 dict.setdefault 方法快。

orderedDict

在Python3.6 版本之前的字典是無序的,然而有些時候我們需要保持字典的有序性,跟蹤到字典鍵(Key)添加先后順序。orderedDict可以實現字典的有序性,即按照字典鍵(Key)插入的順序來排列,這樣就實現了一個先進先出的字典,當容量超出限制時,先刪除最早添加的鍵(Key),示例如下:

我們需要注意的是,對于普通的字典,即使傳入的順序不一樣,但是仍然是相同的字典;但如果是orderedDict,當傳入的順序不一樣時,那么得到的字典是不一樣的,示例如下:

deque

Python中的列表(List)是基于數組實現的,查找容易,但插入和刪除操作時間復雜度較大。 deque實現了高效實現插入和刪除操作的雙向列表(也叫做雙端隊列),適合用于隊列和棧,并且線程安全。

列表(List)只提供了append和pop方法,實現從列表(List)的尾部插入或刪除元素。deque新增了appendleft、popleft 等方法可以更高效的在列表的開頭插入或刪除元素,示例如下:

Counter

Counter 屬于字典的子類,主要作用是統計可哈希對象出現的次數。追蹤元素出現的次數同時按照從高到低的順序排列成字典,元素被作為字典的鍵(Key)存儲,它們的計數作為字典的值(Value)存儲,示例如下:

同時Counter內部提供了很多方法對結果進行處理,如most_common方法獲取出現次數最多的前N個元素,如下:

總結

以上是生活随笔為你收集整理的python优雅编程_Python优雅编程——Collections模块中的高性能数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

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