Python中collections模組介紹

2021-10-04 00:25:59 字數 2317 閱讀 8734

一、模組的基本介紹

1、通常,乙個模組就是乙個包含了python定義和宣告的檔案,檔名就是模組名字加上.py的字尾。

import載入的模組又可以分為四個通用類別:

a、使用python編寫的**(.py檔案)

b、已被編譯為共享庫或dll的c或c++擴充套件

c 、包好一組模組的包

d 、使用c編寫並鏈結到python直譯器的內建模組

2、模組的作用

當我們退出python直譯器後重新進入,之前定義的函式或者變數都將丟失,所以通常將程式寫到檔案中以便永久儲存下來,需要時就通過python test.py方式去執行,此時test.py被稱為指令碼script。

隨著程式的發展,功能越來越多,為了方便管理,我們通常將程式分成乙個個的檔案,這樣做程式的結構更清晰,方便管理。這時我們不僅僅可以把這些檔案當做指令碼去執行,還可以把他們當做模組來匯入到其他的模組中,實現了功能的重複利用,

(參考自更多常用模組)

二、collections模組介紹

collections是python內建的乙個集合模組,提供了許多有用的集合類。該模組實現了專門的容器資料型別,提供了python的通用內建容器,dict,list,set和tuple的替代方法。

在內建資料型別(dict、list、set、tuple)的基礎上,collections模組還提供了幾個額外的資料型別:counter、deque、defaultdict、namedtuple和ordereddict等。下面就來一一介紹:

1、namedtuple: 生成可以使用名字來訪問元素內容的tuple

用法示例:tuple可以表示不變集合,例如,乙個點的二維座標就可以表示成:

p = (3, 2)

但是,看到(1, 2),很難看出這個tuple是用來表示乙個座標的。

這時就可以用namedtuple來表示出更加詳細的資訊

from collections import namedtuple

point = namedtuple(『point』, [『x』, 『y』])

p = point(3, 2)

2、deque: 雙端佇列,可以快速的從另外一側追加和推出物件

3、counter: 計數器,主要用來計數

counter類的目的是用來跟蹤值出現的次數。它是乙個無序的容器型別,以字典的鍵值對形式儲存,其中元素作為key,其計數作為value(可以認為counter直接生成乙個hash表,這一點在處理問題時經常用到)。

計數值可以是任意的interger(包括0和負數)。counter類和其他語言的bags或multisets很相似。

c = counter(『abcdeabcdabcaba』)print c

輸出:counter()

4、ordereddict: 有序字典

使用dict時,key是無序的。所以在對dict做迭代時,我們無法確定key的順序。

如果要保持key的順序,可以用ordereddict:

from collections import ordereddict

d = dict([(『a』, 1), (『b』, 2), (『c』, 3)])

d # dict的key是無序的

od = ordereddict([(『a』, 1), (『b』, 2), (『c』, 3)])

od # ordereddict的key是有序的ordereddict([(『a』, 1), (『b』, 2), (『c』, 3)])

但這裡要注意,ordereddict的key排序是按照插入的順序排列,而不是key本身排序。

5、defaultdict: 帶有預設值的字典

使用dict時,如果引用的key不存在,就會丟擲keyerror。如果希望key不存在時,返回乙個預設值,就可以用defaultdict:

from collections import defaultdict

dd = defaultdict(lambda: 『n/a』)

dd[『key1』] = 『abc』>>> dd[『key1』] # key1存在』abc』>>> dd[『key2』] # key2不存在,返回預設值』n/a』

參考文獻

webcontrol中的collection屬性

今天可以說是費了九牛二虎之力,通宵一晚,才研究出這個webcontrol的collection屬性的設定.首先介紹幾個屬性上的attribute 1 designerserializationvisibility 常用的是designerserializationvisibility designe...

python常用內建模組 collections

1.namedtuple namedtuple是乙個函式,它用來建立乙個自定義的tuple物件,並且規定了tuple元素的個數,並可以用屬性而不是索引來引用tuple的某個元素。這樣一來,我們用namedtuple可以很方便地定義一種資料型別,它具備tuple的不變性,又可以根據屬性來引用,使用十分...

Python容器資料型別 collections

usr bin python coding utf 8 count物件 only 2.7 from collections import counter 統計字母出現的次數 counter hello world counter red blue red green blue blue 小於等於0的...