python3中列表、元組、字典的增刪改查說明詳解


  python基礎中的列表、元組、字典屬於python中內置的序列數據結構。其中序列可以進行的操作包括索引、截取(切片)、加、乘、成員檢查等。

1、列表

列表(list)是最常用的python數據類型之一,列表的數據項不需要具有相同的類型。創建一個列表,只需要把用逗號分隔開的不同數據項使用方括號[]括起來即可。創建列表實例如下:

list1 = ["test","測試",1997,2000]; list2 = [1,2,3,4,5,6]; list3 = ["a","b","c","d"];

列表的索引是從0開始,列表可以進行截取(切片)、組合。

一、訪問列表的元素

訪問的方式可以是通過下標索引,也可以是以方括號的形式截取字符。

1 list1 = ["test","測試",2018,2019,]; 2 list2 = [1,2,3,4,5,6]; 3 print("list1[0]:",list[0]) 4 print("list2[1:5]:",list2[1:5])

以上實例輸出的結果為:

1 list1[0]: test 2 list2[1:5]: [2,3,4,5]

 

二、增加列表中的元素

使用append()方法在列表的末尾增加新的元素。

1 list1 = ["test","測試",2018,2019,]; 2 list1.append(2020) 3 print(list)

以上實例輸出的結果為:

1 ["test","測試",2018,2019,2020]

 

三、修改列表中的元素

實例如下:

1 list1 = ["test","測試",2018,2019,]; 2 print("修改前的列表元素:",list1) 3 list1[2] = 2017;              #將列表中索引為2的元素修改為2017 4 print("修改后的列表元素:",list2)

以上實例執行后的結果為 :

1 修改前的列表元素:["test","測試",2018,2019,] 2 修改后的列表元素:["test","測試",2017,2019,]

 

四、刪除列表中的元素

方法一:使用del語句來刪除列表的元素,實例如下:

1 list1 = ["test","測試",2018,2019,]; 2 print(list1) 3 del list1[2] 4 print("刪除索引為2的元素后的列表:",list1)

以上實例執行后展示的結果為:

1 ["test","測試",2018,2019,] 2 ["test","測試",2019,]

 

方法二:使用remove()方法來刪除列表中的元素,實例如下:

1 list1 = ["test","測試",2018,2019,]; 2 list1.remove(2018) 3 list1.remove("測試") 4 print("刪除部分元素后的列表:"list1)

以上實例執行后展示的結果為:

1 ["test",2019,]

 

方法三:使用pop()方法來刪除列表中的指定位置的元素,無參數時默認刪除最后一個元素,實例如下:

1 list1 = ["test","測試",2018,2019,]; 2 list1.pop(1)                 #刪除位置1的元素 測試 3 list1.remove()                #刪除最后一個元素 2019 4 print("刪除部分元素后的列表:",list1)

以上實例執行后展示的結果為:

1 ["test",2018]

 

五、列表的其他操作符

列表對“+”和“*”的操作符與字符串相似。+號用於組合列表,*用於重復列表。其操作符如下:

python列表的操作符
python表達式 描述 結果
len([1,2,3]) 長度 3
[1,2,3]+[4,5,6] 組合 [1,2,3,4,5,6]
["ha"]*4 重復 ["ha","ha","ha","ha"]
3 in [1,2,3] 元素是否在列表中 True
for x in [1,2,3]:print(x,end="") 迭代 1 2 3

 

 

 

 

 

 

 

 

 

 

 

 

六、python列表內置函數和方法

python列表的方法和內置函數(假設列表名為list)
方法 功能
list.append(obj) 在列表的末尾添加新的元素
list.count(obj) 統計某個元素在列表中出現的次數
list.extend(seq) 在列表末尾一次性追加另一個序列中的多個值
list.index(obj) 從列表中找出某個值第一個匹配項的索引位置
list.insert(index,obj) 將元素插入到列表中的指定位置
list.pop(index) 移除列表中的指定位置的元素,不指定位置時默認移除最后一個
list.remove(obj) 移除列表中某個值的第一個匹配項
list.reverse() 反轉列表中的元素的位置
list.sort([func]) 對原列表進行排序
len(list) 內置函數,列表中元素的個數
max(list) 內置函數,返回列表中元素的最大值
min(list) 內置函數,返回列表中元素的最小值
list(seq) 內置函數,將元組轉換成列表

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、元組

元組的與列表類似 ,但是也有不同,不同之處在於元組中的元素不能修改。元組使用小括號(),列表使用方括號[],元組中的元素類型也是可以不同的。

一、創建元組

可以通過直接在括號中添加元素,並使用逗號隔開即可。實例如下:

1 tup1 = ("test","測試",2018,2019) 2 tup2 = (1,2,3,4,5,6) 3 tup3 = "a","b","c","d"
4 tup4 = ()                                          #創建空元組

 當元組中只有一個元素時需要在元素后邊添加逗號,實例如下:

1 tup5 = (20,)  

在元組中下標索引同樣是從0開始,可以進行截取,組合等操作。

二、訪問元組

可以通過下標索引來訪問元組中的元素,實例如下:

1 tup1 = ("test","測試",2018,2019) 2 tup2 = (1,2,3,4,5,6) 3 print("tup1[0]:",tup1[0])              #輸出元組中第一個元素
4 print("tup2[1:5]:",tup2[1:5])          #切片,輸出從第二個元素開始到第5個元素
5 print("tup2[2:]:",tup2[2:])            #切片,輸出從第三個元素開始的以后的所有元素
6 print(tup2 * 2)                        #輸出元組元素兩次

以上實例輸出的結果展示如下:

1 tup1[0]: 中國 2 tup2[1:5]: (2,3,4,5) 3 (3,4,5,6) 4 (1,2,3,4,5,6,1,2,3,4,5,6)

 

三、連接元組

元組是不能直接修改,但是可以創建新元組,實例如下:

1 tup1 = (10,20,30) 2 tup2 = (100,200) 3 tup3 = tup1 + tup2 4 print(tup3)

以上實例輸出的結果展示如下:

(10,20,30,100,200)

 

四、刪除元組

元組中的元素不允許被直接刪除,但是可以通過del語句來刪除整個元組,實例如下:

 

1 tup1 = ("test","測試",2018,2019) 2 print(tup1) 3 del tup1 4 print("刪除元組tup1后的結果為:",tup1)

 

 

 

以上實例輸出的結果展示如下:

 

1 ("test","測試",2018,2019) 2 刪除元組tup1后的結果為:NameError:name "tup1" is not defined

 

由上可見,刪除元組后在輸出會報錯。根據報錯信息看出,名字為tup1的元組不存在

 

五、元組運算符

與字符串一樣,元組之間可以使用+ 和*進行運算,意思就是可以進行組合和復制,運算后可以生成一個新的元組,其中操作符如下:

python元組的操作符號
python表達式 描 述 結 果
len(1,2,3) 計算元素個數 3
(1,2,3)+(4,5,6) 連接 (1,2,3,4,5,6)
("a","b") * 3 復制 ("a","b,"a","b"","a","b")
3 in (1,2,3) 元素是否存在 True
for  x in (1,2,3):print(x,end="") 遍歷元組 1 2 3

 

 

 

 

 

 

 

 

 

元組中包含的內置函數如下:

python元組的內置函數
方法 描述 方法 描述
len(tuple) 計算元組的元素個數 min(tuple) 返回元組中元素的最小值
max(tuple) 返回元組中元素的最大值 tuple(seq) 將列表轉換為元組

 

 

 

 

 

 

對內置函數的使用實例如下:

1 tup1 = (56,12,45,75,85) 2 y = min(tup1) 3 print(y)                 #輸出的結果應該為12

 

注意:可以使用元組來一次性對多個變量進行賦值,如:

1 (x,y,z) = (1,2,3) 2 print(x,y,z)

如果想實現x,y的交換也是可以滴

1 y,x = 1,2
2 x,y = y,x 3 print(x,y)            # 輸出的結果為 1,2

 

3、元組與列表的轉換

在實際中,元組、列表、字符串之間是可以相互轉換的,需要使用到的三個函數,str()、tuple()、list()

一、將元組轉換為列表

列表對象 = list(元組對象)

實例如下:

1 tup = (1,2,3) 2 list1 = list(tup)        #將元組轉換為列表
3 print(list1)              #此處輸出是[1,2,3]

 

二、將列表轉換為元組

元組對象 = tuple(列表對象)

實例如下:

 

1 nums = [1,2,3,4] 2 tup = tuple(nums)        #將列表轉換為元組
3 print(tup)               #此處應該輸出 (1,2,3,4)

 

 

三、將列表轉換為字符串

實例如下:

1 nums1 = [1,3,5,7,8,10] 2 str1 = str(nums1)            #列表轉換成字符串,返回字符串:[1,3,5,7,8,10]
3 print(str1[2])               #打印出逗號,在字符串中索引為2的元素是逗號
4 nums2 = ["test","測試",100,200] 5 str2 = "%"
6 srt2 =str2.join(num2)       #用百分號連接起來的字符串
7 str2 = ""
8 str2 = str2.join(num2)      #用空字符連接起來的字符串

 

四、字典

python中字典是一種可變容器模型,且可存儲任意類型對象,如字符串、列表、元組、數字等。也被稱作是關聯數組或哈希表。

一、創建字典

 

字典由鍵和對應值組成(key=>value)成對組成。字典的每個鍵和對應的值之間用冒號隔開,鍵/值對之間用逗號隔開,整個字典用花括號{}括起來,基本語法如下:

 

1 d = {key1:value1,key2:value2}

 

注意:鍵必須是唯一的,但值不一定,值可以取任何數據類型,且鍵必須是不可變的,如字符串、數字、元組等。

字典實例:

 

1 dict = {"xmj":40,"zhan":91,"wang":80}

 

 

二、字典的特性:

1、字典值可以是任何python對象,如字符串、數字、元組等

2、不允許同一個鍵出現兩次,創建時如同一個鍵被兩次賦值,后一個值會被覆蓋前面得值。

3、鍵必須不可變,所以可以用數字,可以用數字、字符串、元組等 ,用列表就不可行。

 

三、訪問字典里的值

訪問字典里的值時把相應的鍵放入方括號中,實例如下:

1 dict = {"Name":"測試","Age":20,"class":"計算機一班"} 2 print("dict["Name"]: ",dict["Name"]) 3 print("dict["Age"]: ",dict["Age"])

以上實例輸出的結果展示如下:

1 dict["Name"]: 測試 2 dict["Age"]: 20

如果訪問的值不存在則會報錯

 

四、修改字典元素

1 dict = {"Name":"測試","Age":20,"class":"計算機一班"} 2 dict["Age"] = 30                                                   # 更新字典中鍵為Age的值
3 dict["School"] = "中國大學"                                         # 新增一個鍵和值
4 print("dict["Age"]: ",dict["Age"]) 5 print("dict["School"]: "dict["School"])

以上實例輸出的結果展示如下:

1 dict["Age"]: 30
2 dict["School"]: 中國大學

 

五、刪除字典元素

del() 方法允許使用鍵從字典中刪除元素。clear()方法清空字典中所有的元素。

1 dict = {"Name":"測試","Age":20,"class":"計算機一班"} 2 del dict["Name"]               #刪除字典中鍵為Name的元素
3 dict.clear()                     #清空字典中所有的元素
4 del dict                         #刪除字典,這樣操作后字典將不復存在

 

六、in運算

檢查某個值是否存在字典中。

1 dict = {"Name":"測試","Age":20,"class":"計算機一班"} 2 print("Age" in dict)                  #等價於print(dict.has_key("Age")) 輸出結果為True

 

七、獲取字典中的所有值

values()以列表返回字典中所有的值,實例如下:

1 dict = {"Name":"測試","Age":20,"class":"計算機一班"} 2 print(dict.values())                        #返回的結果為 ["測試",20,"計算機一班"]

 

八、items()方法

items()方法把字典中每對key和value組成一個元組,並把這些元組放在列表中返回。

1 dict = {"Name":"測試","Age":20,"class":"計算機一班"} 2 for key,value in dict.items(): 3     print(key,value)     

以上實例輸出的結果展示如下:

1 Name 測試 2 Age 20
3 class 計算機一班

注意:字典中的元素沒有順序之分,所有有時候打印出來的順序與重建之初的順序不一致,這不是錯誤。因為在存儲是自動做了優化,這樣的存儲於查詢的效率更高。

字典與列表的一個區別:列表中保持元素的相對關系,即序列關系;而字典中完全是無序的,所以是非序列。如果想要保持一個集合中元素的順序則需要使用列表而不是字典。

 

九、字典的內置函數與方法匯總

假設字典名稱為dict1

python中字典的內置函數與方法匯總
函數 描述
dict1.clear() 刪除字典中所有的元素
dict1.copy() 返回字典的副本,類似於復制
dict1.fromkeys(seq,value) 創建一個新字典,以序列seq中的元素作為字典的鍵,以value中的值作為字典中的鍵對應的初始值
dict1.get(key,default=None) 返回指定鍵的值
dict1.has_key(key) 在python3.0以后此方法已經刪除
dict1.items() 以列表返回可遍歷的(鍵,值)元組數據
dict1.keys() 以列表返回字典所有的鍵
dict1.setdefault(key,default=None) 和get()類似,但如果鍵不存在與字典中則會添加鍵並將值設為default
dict1.update(dict2) 把字典dict2的鍵/值更新為dict1中
dict1.values() 以列表返回字典中的所有值
cmp(dict1,dict2) 內置函數,比較兩個字典的元素
len(dict) 內置函數,計算字典元素個數,既鍵的總數
str(dict) 內置函數,輸出字典可打印的字符串表示
type(variable) 內置函數,返回輸入的變量類型,如果變量是字典就返回字典類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM