一、列表
- 列表是Python中最基本的資料結構,是最常用的Python資料型別,列表的資料項不需要具有相同的型別
- 列表是一種有序的集合,可以隨時新增和刪除其中的元素
- 列表的索引從0開始
1、建立列表
>>> list1 = [`python`, 2018, `python3`, 1994] >>> list1 [`python`, 2018, `python3`, 1994] >>> list2 = [1, 2, 3, 4] >>> list2 [1, 2, 3, 4] >>> list3 = [`a`, `b`, `c`, `d`] >>> list3 [`a`, `b`, `c`, `d`]
2、獲取列表元素個數
>>> len(list1)
4
3、訪問列表中的值
(1)使用索引來訪問列表中的值,列表的索引從0開始:
>>> list1[0] `python` >>> list1[1] 2018 >>> list1[2] `python3` >>> list1[3] 1994 >>> list1[4] Traceback (most recent call last): File "<input>", line 1, in <module> IndexError: list index out of range
注意:當索引超出範圍時,Python會報一個IndexError錯誤,所以,要確保索引不要越界,記得最後一個元素的索引是len(list1) – 1。
(2)還可以獲取列表最後一個元素:
>>> list1[-1]
1994
以此類推,可以獲取倒數第2個、倒數第3個、倒數第4個:
>>> list1[-2] `python3` >>> list1[-3] 2018 >>> list1[-4] `python` >>> list1[-5] Traceback (most recent call last): File "<input>", line 1, in <module> IndexError: list index out of range
當然,倒數第5個元素已越界,需要注意一下。
(3)切片
擷取列表前3個元素:
>>> list1[0:3] [`python`, 2018, `python3`] >>> list1[:3] #如果第一個索引是0,可以省略 [`python`, 2018, `python3`]
倒數切片:
>>> list1[-2:] #獲取後2個元素 [`python3`, 1994] >>> list1[-2:-1] [`python3`]
前4個元素,每兩個取一個:
>>> list1[:4:2] [`python`, `python3`]
所有元素,每3個取一個:
>>> list1[::3] [`python`, 1994]
原樣複製一個列表:
>>> list1[:] [`python`, 2018, `python3`, 1994]
4、合併列表
>>> list4 = list2 + list3 >>> list4 [1, 2, 3, 4, `a`, `b`, `c`, `d`]
5、更新列表
>>> list1 [`python`, 2018, `python3`, 1994] >>> list1[1] = 2017 >>> list1 [`python`, 2017, `python3`, 1994]
6、刪除列表
>>> del list4
7、清空列表
>>> list1 [`python`, 2017, `python3`, 1994] >>> list1.clear() >>> list1 []
8、列表操作的函式和方法
列表操作包含以下函式:
cmp(list1, list2) #比較兩個列表的元素 len(list) #列表元素個數 max(list) #返回列表元素最大值 min(list) #返回列表元素最小值 list(seq) #將元組轉換為列表
列表操作包含以下方法:
list.append(obj) #在列表末尾新增新的物件 list.count(obj) #統計某個元素在列表中出現的次數 list.extend(seq) #在列表末尾一次性追加另一個序列中的多個值(用新列表擴充套件原來的列表) list.index(obj) #從列表中找出某個值第一個匹配項的索引位置 list.insert(index, obj) #將物件插入列表 list.pop(obj=list[-1]) #移除列表中的一個元素(預設最後一個元素),並且返回該元素的值 list.remove(obj) #移除列表中某個值的第一個匹配項 list.reverse() #反向列表中元素 list.sort([func]) #對原列表進行排序
二、元組
元組(tuple)和列表(list)非常類似,但是元組一旦初始化就不能修改,且元組使用小括號而列表使用中括號。
1、建立元組
>>> tup1 = (`python`, 2018, `python3`, 1994) >>> tup1 (`python`, 2018, `python3`, 1994) >>> tup2 = (1, 2, 3, 4) >>> tup2 (1, 2, 3, 4) >>> tup3 = (`a`, `b`, `c`, `d`) >>> tup3 (`a`, `b`, `c`, `d`)
注意:元組中只包含一個元素時,需要在元素後面新增逗號來消除歧義
>>> tup4 = (`hello`,)
2、合併元組
>>> tup5 = tup2 + tup3 >>> tup5 (1, 2, 3, 4, `a`, `b`, `c`, `d`)
3、刪除元組
>>> del tup5 >>> tup5 #此時tup5已不存在,所有報錯 Traceback (most recent call last): File "<input>", line 1, in <module> NameError: name `tup5` is not defined
元組的操作基本與列表的操作一直,除了不能修改元組本身外。
三、字典
- 字典是另一種可變容器模型,且可儲存任意型別物件,如字串、數字、元組等其他容器模型
- 字典在其他語言中也稱為map,使用鍵-值(key-value)儲存,具有極快的查詢速度
- 字典中鍵是唯一的,如果重複最後的一個鍵值對會替換前面的,值不需要唯一
1、建立字典
>>> dict1 = {`a`: 1, `b`: 2, `b`: `3`} >>> dict1 {`a`: 1, `b`: `3`} #因為鍵存在相同,所以後面的鍵值替換了前面的鍵值 >>> dict2 = {`Alice`: `2341`, `Beth`: `9102`, `Cecil`: `3258`} >>> dict2 {`Alice`: `2341`, `Beth`: `9102`, `Cecil`: `3258`} >>> dict3 = { `abc`: 123, 98.6: 37 } >>> dict3 {`abc`: 123, 98.6: 37}
2、訪問字典中的值
>>> dict2[`Beth`] `9102` >>> dict2[`Beth1`] # 如果字典中沒有的鍵訪問值,會輸出以下錯誤 Traceback (most recent call last): File "<input>", line 1, in <module> KeyError: `Beth1`
3、修改字典
>>> dict1 {`a`: 1, `b`: `3`} >>> dict1[`b`] = 666 >>> dict1 {`a`: 1, `b`: 666}
4、刪除字典元素
能刪單一的元素也能清空字典,並且可以直接刪除字典
>>> dict = {`Name`: `Zara`, `Age`: 7, `Class`: `First`} >>> dict {`Name`: `Zara`, `Age`: 7, `Class`: `First`} >>> del dict[`Name`] #刪除鍵是`Name`的條目 >>> dict {`Age`: 7, `Class`: `First`} >>> dict.clear() #清空詞典所有條目 >>> dict {} >>> del dict #刪除詞典
5、字典內建函式和方法
Python字典包含了以下內建函式:
cmp(dict1, dict2) #比較兩個字典元素。 len(dict) #計算字典元素個數,即鍵的總數。 str(dict) #輸出字典可列印的字串表示。 type(variable) #返回輸入的變數型別,如果變數是字典就返回字典型別。
Python字典包含了以下內建方法:
dict.clear() #刪除字典內所有元素 dict.copy() #返回一個字典的淺複製 radiansdict.fromkeys() #建立一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值 dict.get(key, default=None) #返回指定鍵的值,如果值不在字典中返回default值 dict.has_key(key) #如果鍵在字典dict裡返回true,否則返回false dict.items() #以列表返回可遍歷的(鍵, 值) 元組陣列 dict.keys() #以列表返回一個字典所有的鍵 dict.setdefault(key, default=None) #和get()類似, 但如果鍵不已經存在於字典中,將會新增鍵並將值設為default dict.update(dict2) #把字典dict2的鍵/值對更新到dict裡 dict.values() #以列表返回字典中的所有值
四、集合
集合(set)是一個無序不重複元素的序列。
可以使用大括號 { } 或者 set() 函式建立集合,注意:建立一個空集合必須用 set() 而不是 { },因為 { } 是用來建立一個空字典。
1、建立集合
#建立一個空集合 >>> set1 = set() >>> set1 set() #建立一個具有資料的集合 >>> set2 = {1, `a`, `apple`, 11.22} >>> set2 {11.22, 1, `apple`, `a`} >>> set3 = set([1, 2, 3]) >>> set3 {1, 2, 3}
2、判斷元素是否在集合內
>>> `apple` in set2 True >>> `apple` not in set2 False
3、新增元素
#將值新增到集合中,如果值存在,則不作任何操作 >>> set2.add(`car`) >>> set2 {1, `apple`, `car`, 11.22, `a`} #另外一種新增方式,引數可以是列表、元組、字典等 >>> set2.update({2,3}) >>> set2 {1, `apple`, 2, 3, `car`, 11.22, `a`} >>> set2.update([1,4],[5,6]) >>> set2 {1, `apple`, 2, 3, 4, 5, 6, `car`, 11.22, `a`}
4、刪除元素
>>> set2.remove(`car`) >>> set2 {1, `apple`, 2, 3, 4, 5, 6, 11.22, `a`} >>> set2.remove(`hello`) #如果元素不存在會發生錯誤 Traceback (most recent call last): File "<input>", line 1, in <module> KeyError: `hello` #這種方式如果元素不存在不會發生錯誤 >>> set2.discard(`hello`)
5、計算集合元素個數
>>> len(set2)
9
6、清空集合
>>> set2.clear() >>> set2 set()