python序列類型,python序列
在python中,序列類型包括字串(一般字元串和unicode字串)、列表和元組,所謂序列,即成員有序排列,可通過下標訪問。假設序列有n個元素,訪問單個元素時,下標從0開始,到n-1結束,如果是逆序訪問,下標從-1開始,到-n結束,切片操作支援多個元素的訪問。
序列類型支援如下操作符——
in/not in:成員關係操作符
obj [not] in sequence:判斷obj元素是否(不)屬於sequence序列。
+:串連操作符
sequence1 + sequence2:串連兩個同類型序列。
*:重複操作符
sequence * copies_int:sequence序列重複copies_int次。
[]、[:]、[::]:切片操作符
sequence[index]:訪問單個元素。
sequence[starting_index:ending_index]:訪問始末下標間的元素,支援None作為索引值,等同於不指定這個索引值。
sequence[starting_index:ending_index:step]:訪問始末下標間的元素,指定元素間的步長支援None作為索引值,等同於不指定這個索引值。
序列類型可用如下內建函數——
list(iter):把可迭代對象轉換為列表。
str(obj):把obj對象轉換為字串,即用字串來表示這個對象。
tuple(iter):把一個可迭代對象轉換為一個元組。
unicode(obj):把對象轉換成Unicode字串。
basestring():抽象工廠函數,其作用僅僅是為str和unicode函數提供父類,所以不能被執行個體化,也不能被調用。
enumerate(iter):接受一個可迭代對象作為參數,返回一個enumerate對象,該對象產生由iter每個元素的index值和item值組成的元組。
len(seq):返回seq的長度。
max(iter,key=None)、max(arg0,arg1...,key=None):返回iter或(arg0,arg1...)的最大值,如果指定了key,這個key必須是一個可以傳給sort()方法的,用於比較的回呼函數。
min(iter,key=None)、min(arg0,arg1...,key=None):返回iter或(arg0,arg1...)的最小值,如果指定了key,這個key必須是一個可以傳給sort()方法的,用於比較的回呼函數。
reversed(seq):接受一個序列作為參數,返回一個以逆序訪問的迭代器。
sorted(iter,cmp=None,key=None,reverse=False):接受一個可迭代對象作為參數,返回一個有序的列表,選擇性參數cmp、key和reverse和list.sort()內建函數含義一樣。
sum(seq,init=0):返回seq和選擇性參數init的總和,其效果等同於reduce(operator.add,seq,init)。
zip([it0,it1...]):返回一個列表,其第一個元素是it0、it1...這些元素的第一個元素組成的一個元組,其它元素依次類推。
python字串——
字串類型是python裡面最常見的類型,是不可變類型,支援單引號、雙引號、三引號,三引號是一對連續的單引號或者雙引號,允許一個字串跨多行。
字串串連:前面提到的+操作符可用於字串串連,還可以直接把幾個字串連在一起寫,另外調用join()方法也可以連接字串。
只適用於字串串連的操作符:前面提到了一些序列類型共用的操作符,除此之外,字串還有只屬於自己的操作符,包括格式控制操作符%、字串模板string.Template、原始字串操作符r/R、Unicode字串操作符u/U。
下面列舉一些與字串類型有關的模組。
string:字串操作相關函數和工具,比如Template類。
re:Regex,強大的字串模式比對模組。
struct:字串和二進位之間的切換。
c/StringIO:字串緩衝對象,操作方法類似於file對象。
base64:Base16,32,64資料編解碼。
codecs:解碼器註冊和基類。
crypt:進行單方面加密。
difflib:找出序列間的不同。
hashlib:多種不同安全哈系演算法和資訊摘要演算法的API,python2.5廢除。
hma:HMAC資訊鑒權演算法的python實現。
md5:RSA的MD5資訊摘要鑒權。
rotor:提供多平台的加解密服務。
sha:NIAT的安全哈系演算法SHA。
stringprep:提供用於IP協議的Unicode字串。
textwrap:文本打包和填充。
unicodedata:Unicode資料庫。
python列表——
python列表用方括弧[]表示,有容器和可變的特性,這使得它非常靈活,用來構建其它的資料結構不是件難事,比如說堆棧或隊列。
python元組——
python元組用圓括弧()表示,是跟列表非常接近的另一種容器類型,不同的是,元組為不可變類型。所有多個物件的、逗號分隔的、沒有明確用符號定義的集合的預設類型為元組。
下面再列舉一些與序列類型有關的模組。
數組:一種受限制的可變序列類型,要求所有的元素必須都是相同的類型。
copy:提供淺拷貝和深拷貝能力,深拷貝deepcopy()只對可變類型有效。
operator:包含函數調用形式的序列操作符。
types:包含python支援的所有類型。
collections:高效能容器資料類型。