Python中高階資料儲存及應用

Simon_Zhou發表於2019-04-05

1. 列表

1.1列表的概念

列表是一種儲存大量資料的儲存模型。

1.2列表的特點

Python中高階資料儲存及應用

1.3 列表的基本語法

建立列表: 變數名 = [資料1,資料2,……]

獲取列表資料: 變數名[索引]

修改列表資料: 變數名[索引] = 值

list1 = [1,2,3,'Tom','Joe','True','None']
print(list1[4]) # 獲取列表指定索引的資料
list1[4] = 'Alin'  #修改列表中指定索引的資料複製程式碼

1.4 列表常用方法

方法名功能引數返回值範例
append(data)關鍵詞:追加在列表的末尾新增資料data:加入到列表中的資料Nonelist1 = [1,2,3] list1.append("Tom")
insert(idx,data)關鍵詞:插入在列表的指定位置插入資料,如果索引位置超過列表資料總量,資料將插入到列表末尾idx:插入資料的索引位置data:加入列表中的資料Nonelist1 = [1,2,3] list1.insert(0,"Tom")
extend(model)關鍵詞:追加全部在列表的末尾新增引數物件中的所有資料model:儲存有資料的儲存模型,該模型接受列表、元組、集合型別的物件Nonelist1 = [1,2,3] list2 = [4,5,6] tuple2 = (7,8,9) set2 = {10,11,12} list1.extend(list2) list1.extend(tuple2) list1.extend(set2)
remove(data)關鍵詞:刪除從列表中刪除指定的資料,如果資料不存在將報錯data:要從列表中刪除的資料Nonelist1 = [1,2,3,"Tom"] list1.remove("Tom")
pop(idx)關鍵詞:獲取刪除從列表中獲取並刪除指定索引位置上的資料,如果索引值超過列表資料總量將報錯idx:要從列表中獲取的資料對應的索引位置獲取到的資料list1 = [1,2,3,"Tom"] data = list1.pop(2)
clear()關鍵詞:清空清空列表中的資料Nonelist1 = [1,2,3,"Tom"] list1.clear()
index(data)關鍵詞:查詢位置查詢列表中指定資料對應的索引,如果資料不存在將報錯data:在列表中要查詢的資料查詢資料第一次出現的索引list1 = [1,2,3,"Tom"] idx = list1.index("Tom")
count(data)關鍵詞:統計數量統計列表中指定資料出現的數量data:在列表中要統計數量的資料統計資料出現的次數list1 = [1,2,3,"Tom"] num = list1.count("Tom")

2. 元組

2.1 元組的概念

元組是一種儲存固定資料的儲存模型。

2.2 元組的特點

Python中高階資料儲存及應用

2.3 元組的基本語法

建立元組: 變數名 = (資料1,資料2,……)

獲取元組資料: 變數名[索引]

tuple1 = (1,2,3,"Tom",True,False)
print(tuple1[4])  # True
print(tuple1)
tuple2 = (100,)
print(tuple2)複製程式碼

Python中高階資料儲存及應用

2.4 元組常用方法

方法名功能引數返回值範例
index(data)關鍵詞:查詢位置查詢元組中指定資料對應的索引,如果資料不存在將報錯data:在元組中要查詢的資料查詢資料第一次出現的索引tuple1 = [1,2,3,"Tom"]    idx = tuple1.index("Tom")
count(data)關鍵詞:統計數量統計元組中指定資料出現的數量data:在元組中要統計數量的資料統計資料出現的次數tuple1 = [1,2,3,"Tom"]    num =tuple1.count("Tom")

2.5 注意事項

元組中的資料如果是非引用型別資料,不允許修改。

元組中的資料如果是引用型別物件,該物件不允許替換,而物件的屬性值可以發生改變。

2.6 元組的特殊應用

自動組包:將多個資料賦值給一個變數時,多個資料將包裝成一個元組,將元組賦值給變數,該過程稱為自動組包。

應用場景:設定返回值為多個值。

return 1,2,3    等同於 return (1,2,3)複製程式碼

應用場景:動態字串賦值傳值方式。

print(“座標%d,%d” % (10,20))複製程式碼

自動解包:將元組賦值給多個變數時,如果元組資料的數量與變數的數量相同,元組將被自動拆分成多個值,並賦值給對應變數,該過程稱為自動解包。

應用場景:多個變數接收返回值

a,b,c = func()等同於 a,b,c = (1,2,3)等同於a,b,c = 1,2,3複製程式碼

3. 集合

3.1 集合的概念

Python中高階資料儲存及應用

3.2集合的特點

集合沒有索引的概念。集合中的資料可以進行新增、刪除等操作。

3.3 集合的基本語法

建立集合:變數名 = {資料1,資料2,……}

set3 = {True,1,2,3,0,False,4,5,1,2,5}   # 數值非0表示True# 
輸出: {0, True, 2, 3, 4, 5}  複製程式碼

3.4 集合常用方法

方法名功能引數返回值範例
add(data)關鍵詞:新增在集合中新增資料data:加入到集合中的資料Noneset1 = {1,2,3} set1.append("Tom")
remove(data)關鍵詞:刪除從集合中刪除指定的資料,如果資料不存在將報錯data:要從集合中刪除的資料Noneset1 = {1,2,3,"Tom"} set1.remove("Tom")
pop()關鍵詞:獲取刪除從集合中獲取並刪除第一個資料獲取到的資料set1 = {1,2,3,"Tom"} data = set1.pop()
clear()關鍵詞:清空清空集合中的資料Noneset1 = {1,2,3,"Tom"} set1.clear()

4. 字典

4.1 字典的概念

Python中高階資料儲存及應用

4.2 字典的特點

字典不具有索引的概念,字典使用鍵key代替索引,可以通過鍵操作字典中儲存的資料值value。字典可以根據鍵key進行資料的新增、刪除、修改、查詢操作。

4.3 字典的基本語法

建立字典: 變數名 = {鍵1:值1,鍵2:值2,……}

新增資料: 變數名[鍵] = 值 (字典中沒有對應的鍵)

獲取資料: 變數名[鍵]

修改資料: 變數名[鍵] = 值 (字典中存在對應的鍵)

dict = {'Name': '張三', 'Age': 17, 'Class': '高三一班'}
print("dict['Name']:%s "% dict['Name'])  # 取值
print("dict['Age']:%s "% dict['gender'])
​dict['gender'] = '男' # 增加鍵值對
dict['Age'] = 18 # 修改鍵值對,原先的值會被替換
dict.pop('class') # 刪除class​dict.clear() # 清空字典複製程式碼

4.4 字典常用方法

方法名功能引數返回值範例
pop(key)關鍵詞:刪除獲取從字典中刪除指定鍵key對應的鍵值對,如果鍵key不存在將報錯key:要刪除的值value對應的鍵key被刪除的值valuedict1 = {"name":"Tom","age":11} v = dict1.pop("name")
popitem()關鍵詞:刪除從字典中刪除指定鍵key對應的鍵值對,如果鍵key不存在將報錯key:要刪除的鍵值對對應的鍵key,實際測試裡面不能帶引數被刪除的鍵值對,以元組的形式返回dict1 = {"name":"Tom","age":11} v = dict1.popitem()
clear()關鍵詞:清空清空字典中的資料Nonedict1 = {"name":"Tom","age":11} dict1.clear()
setdefault(key,value)關鍵詞:檢測新增新增新的鍵值對,如果存在對應的鍵,則忽略該操作key:要新增的新鍵值對對應的鍵keyvalue: 要新增的新鍵值對對應的值value字典中key對應的值,如果是新增則返回引數value,如果不是新增,返回原始key對應的valuedict1 = {"name":"Tom","age":11} dict1.setdefault("age",22)
update(dict)關鍵詞:更新資料使用新字典中的資料對原始字典資料進行更新dict:新字典物件Nonedict1 = {"name":"Tom","age":11} dict2 = {"address":"北京","age":22} dict1.update(dict2)
get(key)關鍵詞:獲取根據鍵key查詢字典中對應的值,如果鍵key不存在將返回Nonekey:要查詢的鍵key根據鍵key在字典中查詢的值valuedict1 = {"name":"Tom","age":11} v = dict1.get("age")
keys()關鍵詞:獲取鍵列表獲取字典中所有的鍵key組成的列表資料由所有鍵組成的列表dict1 = {"name":"Tom","age":11} dict1.keys()
values()關鍵詞:獲取值列表獲取字典中所有的值value組成的列表資料由所有值組成的列表dict1 = {"name":"Tom","age":11} dict1.values()
items()關鍵詞:獲取鍵值對列表獲取字典中所有的鍵值對列表資料由鍵值對組成的列表,鍵值對的格式是元組資料dict1 = {"name":"Tom","age":11} dict1.items()

4.5 注意事項

字典中的鍵是唯一的

4.6 字典的作用

Python中高階資料儲存及應用

5. 格式轉換

轉換成列表轉換成元組轉換成集合
列表listtuple(列表物件)set(列表物件)
元組tuplelist(元組物件)set(元組物件)
集合setlist(集合物件)tuple(集合物件)

6. for迴圈

6.1 for迴圈作用

Python中高階資料儲存及應用

使用格式:for變數名 in 列表:

list1 = [1, 2, 3, 'Tom']
for data in list1:  
    print(data, end=' ')  
    # 輸出:1 2 3 Tom 複製程式碼

7. Range

7.1 range的功能

建立連續的整數。

7.2 range的基本語法

格式1:range(m) 生成 0 到 m-1 的整數

格式2:range(m,n) 生成 m 到 n-1 的整數

格式3:range(m,n,s) 生成 m 到 n-1 的整數,整數間隔為s

r1 = range(1,5)     # 由1到5,不包含5
print(list(r1))r2 = range(1,10,2)  # 由1到10,不包含10,每次自增2
print(list(r2))複製程式碼

7.3 range的應用場景

1.配合for迴圈構造指定次數的迴圈。

for _ in range(..):​   
    迴圈執行的程式碼​複製程式碼

2.快速建立由連續的整數作為資料的列表、元組、集合物件。

list(range(..))
tuple(range(..))
set(range(..))​複製程式碼

8. 資料儲存結構巢狀

8.1 資料儲存結構巢狀概念

資料結構巢狀指一種資料結構中包含的資料是另一種資料結構。

8.2 範例

list1 = [1,2,3]
list2 = [4,5,6,7]
list3 = ["Joe","Sam"]
tuple1 = (5,4,3)
set1 = {8,7,6}
list4 = [list1,list2,list3,tuple1,set1]
print(list4)​
# 輸出 [[1, 2, 3], [4, 5, 6, 7], ['Joe', 'Sam'], (5, 4, 3), {8, 6, 7}]複製程式碼

9. 公共方法

方法名功能引數返回值範例
len(model)關鍵詞:資料總量獲取容器模型中的資料總量model:儲存有資料的儲存模型,該模型接受各種容器容器模型中資料的總量list1 = [1,2,3,'Tom',"valley"] length = len(list1)
max(model)關鍵詞:最大值獲取容器模型中的最大值,對於字典獲取字典的鍵key的最大值model:儲存有資料的儲存模型,該模型接受各種容器容器模型中資料的最大值list1 = [1,2,3,4,5] max_value = max(list1)
min(model)關鍵詞:最小值獲取容器模型中的最小值,對於字典獲取字典的鍵key的最小值model:儲存有資料的儲存模型,該模型接受各種容器容器模型中資料的最小值list1 = [1,2,3,4,5] min_value = min(list1)

10. 切片

10.1 切片的作用

獲取列表、元組或字串中的區域性資料。

10.2 切片基本語法

容器物件[開始索引:結束索引:步長]。

10.3 特殊格式

省略開始索引:預設開始索引為0​
範例:list1[:5:1]  等同於   list1[0:5:1] 
省略結束索引:預設結束索引為資料總量
​範例:list1[0::1]  等同於   list1[0:len(list1):1]​
省略步長:每次遞增索引數為1​ 範例:list1[0:5:]  等同於   list1[0:5:1]  ​
負數步長:   反向操作/反向步長操作,需要開始索引、結束索引逆序輸入​
範例:list1[5:0:-1]     
常見格式:​範例:list1[:5:]  獲取索引5之前的資料(不含5) 
範例:list1[4::]   獲取索引4之後的資料(含4)​複製程式碼

Python中高階資料儲存及應用

11. 通用運算子

運算子功能格式適用範圍
+將兩個容器資料合併放入第一個容器list1 + list2列表之間或元組之間(列表與元組之間報錯)
*將容器資料複製n次放入容器中list1 * n列表、元組
in判斷容器中是否包含資料data in list1列表、元組、集合、字典(字典判斷資料是否在keys()中)
not in判斷容器中是否不包含資料data not in list1列表、元組、集合、字典(字典判斷資料是否不在keys()中)
>、>=、==、<=、<比較兩個容器中的資料關係list1 <= list2列表、元組、集合

Python中高階資料儲存及應用

12. for…else

12.1for…else基本語法

for 變數名 in 列表:

變數相關操作

else:

迴圈正常執行結束後執行的操作

for data in range(5):
    print(data,end=' ')
else:
    print('結束')​
 # 輸出: 0 1 2 3 4 結束複製程式碼

如果中間遇見break語句,迴圈未執行完畢,不會走else裡面的程式碼片段。

12.2 注意事項

1.如果for迴圈中執行了break語句,則else中的程式碼將不執行。

2.while迴圈同樣具有while…else語法格式。

13. 推導式

13.1 推導式基本語法

基礎語法格式:迴圈變數 for迴圈

list1 = [data for data in range(5)]複製程式碼

資料處理語法格式:表示式 for迴圈

list1 = [data*5 for data in range(5)]複製程式碼

資料過濾語法格式: 表示式 for迴圈 if判斷

list1 = [data for data in range(5) if data > 200]       複製程式碼

13.2 推導式的作用

推導式可以快速生成資料儲存結構中的資料。

# 建立包含1到100所有整數的列表
list1 = [data for data in range(1,101)]
# 建立包含1到10的平方和的列表
list2 = [data**2 for data in range(1,11)]複製程式碼

推導式的侷限,不能列印複雜的迴圈結構資料。


相關文章