一、模組的基本介紹
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 namedtuplepoint = 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 ordereddictd = 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 defaultdictdd = 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的...