第四章 Python
數據結構
python
內置數據結構爲元組,列表,字典和序列。
4.1 元組結構
元組由一系列元素組成,所有元素被包含在一對圓括號中。如果創建的元組只包含一個元素,注意在元素後加一個“逗號”。索引是一對方括號中的數字,索引也稱爲“下標”。分片索引可以分爲正數和負數,兩個索引之間用冒號分割。
tuple[0:3]
記住python
在切片方面是有前無後。
tuple[0][1]
表示訪問tuple
元素中的第一個元組的第二個元素。 創建元組的過程,成爲“打包”;“解包”可以將元組中的各個元素分別賦值給多個變量。例子:
#打包
tuple = ("apple", "banana", "orange", "grape")
#解包
a, b, c, d = tuple
print (a, b, c, d)
range()
返回一個遞增或遞減的數字列表,列表的元素值由3個參數決定。參數start
表示列表開始的值,默認值爲0。參數stop
表示列表結束的值,該參數不可缺少。參數step
表示步長,每次遞增或遞減的值,默認值爲1。
range([start,]stop[,step])
4.2 列表的結構
列表是python
中非常重要的數據類型,通常作爲函數的返回類型。列表可以實現添加,刪除和查找操作,元素的值可以被修改。列表的添加可以調用append()
,列表的刪除可以調用remove()
,insert()
將元素插入指定的索引位置。調用pop()
可以取出列表中的最後一個元素。
列表的連接提供了兩種方式:一種是調用extend()
連接兩個不同的列表,另一種是使用運算符“+”或“+=”。
列表的查找提供兩種方式,一種是使用index
方法返回元素在列表中的位置,另一種方法是使用關鍵字“in
”來判斷元素是否在列表中。
調用sort()
,元素按首字母升序排序,調用reverse()
反轉列表中元素的排列順序。
堆棧是指最先進入堆棧的元素最後才輸出,符合“後進先出”的順序。隊列是指最先進入隊列的元素最先輸出,符合“先進先出”的順序。
4.3 字典結構
字典是由“鍵-值”對組成的集合。“鍵-值”對之間用“逗號”隔開,並且被包含在一對花括號中。如果需要創建一個空的字典,只需要一對花括號即可。注意字典的“鍵”是區分大小寫的。python
代碼中大小寫都是有區別的。print()
中也可以使用字典:
print ("%s, %(a)s, %(b)s" % {"a":"apple", "b":"banana"})
輸出結果爲:
{"a":"apple", "b":"banana"},apple,banana
元組和列表是通過數字索引來獲取對應的值,字典是通過key
值獲取相應的value
值。字典與列表不同,字典沒有remove()
操作,字典元素的刪除可以調用del()
實現。如果需要清除字典裏所有內容,可以調用clear()
。下面這段代碼演示了常用的操作:
#字典的添加,刪除,修改操作
dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"}
dict["w"] = "watermelon"
del(dict["a"]) #刪除字典中鍵爲a的元素
dict["g"] = "grapefruit" #修改字典中鍵爲g的值
print (dict.pop("b")) #彈出字典中鍵爲b的元素
print (dict)
dict.clear() #清除字典中所有元素
print (dict)
由於字典是無序的,因此字典沒有append()
,remove()
等方法。如果要向字典添加新元素,可以調用setdefault()
。使用for...in
語句完成遍歷。使用字典的items()
也可以實現遍歷操作。使用元組,列表或字典作爲value
值創建的字典,稱爲混合型字典。
key()
和value()
分別返回字典的key
列表和value
列表。另一種獲取value
值的辦法是使用字典的get()
,這樣可以減少代碼的使用。列表的排序可以使用sorted()
實現,字典的排序也可以使用該函數。
4.4 序列
序列是具有索引和切片能力的集合。元組,序列和字符串都屬於序列。使用方法在介紹元組和列表的時候都已經介紹過。