一、列表是什麼 列表:由一系列按特定順序排列的元素組成(列表是有序集合)。 表示:用方括弧[]來表示,並用逗號來分隔其中的元素。 訪問:訪問列表元素,可指出列表的名稱,再指出元素的索引,並將其放在方括弧內。請求獲取列表元素時,Python只返回該元素,而不包括方括弧和引號。 列表索引從0開始:在Py ...
一、列表是什麼
-
列表:由一系列按特定順序排列的元素組成(列表是有序集合)。
-
表示:用方括弧[]來表示,並用逗號來分隔其中的元素。
-
訪問:訪問列表元素,可指出列表的名稱,再指出元素的索引,並將其放在方括弧內。請求獲取列表元素時,Python只返回該元素,而不包括方括弧和引號。
-
列表索引從0開始:在Python中,第一個列表元素的索引為0,而不是1。要訪問第四個列表元素,可使用索引3。索引-1返回列表最後一個元素。索引-2返回倒數第二個列表元素。
-
使用列表中的各個值:可像使用其他變數一樣使用列表中的各個值。例如,可使用拼接(+)根據列表中的值來創建消息。
1 F=['red','blue','green','yellow'] 2 3 #訪問列表元素: 4 print(F[2]) #列表名稱+[索引] 5 6 #列表索引從0開始: 7 print(F[0]) #第一個元素 8 print(F[3]) #第四個元素 9 print(F[-1]) #最後一個元素 10 print(F[-3]) #倒數第三個元素 11 12 #使用列表中的各個值: 13 print("我最喜歡的顏色是"+F[0]+"。")
運行代碼結果如下:
二、修改、添加和刪除元素
1.修改列表元素
要修改列表元素,可指定列表名和要修改的元素的索引,再指定該元素的新值。【列表名[索引]=新值】
1 # 1.修改列表元素: 2 F=['red','blue','green','yellow'] 3 print(F) 4 F[2]="black" #列表名[索引]=新值 5 print(F)
代碼運行結果:
2. 添加列表元素
(1)在列表末尾添加元素:使用方法.append()。可創建一個空列表,再使用一系列的append()語句添加元素。【列表.append(值)】
(2)在列表中插入元素:使用方法.insert() 在列表任何位置添加新元素。【列表.insert(索引,值)】。要特別註意當索引為負值時插入的位置。
1 # 2.添加列表元素 2 A=[90,80,'green'] 3 print(A) 4 #(1)在列表末尾添加元素 5 A.append(100) #列表名.append(值) 6 print(A) 7 #(2)在列表中插入元素 8 A.insert(1,20.6) #列表名.insert(索引,值) 9 print(A) 10 A.insert(-1,55) #註意:列表.insert(索引 = -1, 值)時,當索引 = 負數時,是從倒數倒數第二位開始插入。 11 print(A)
代碼運行結果:
3.刪除列表元素
(1)使用del語句刪除:前提是知道索引。【del 列表[索引]】
(2)使用方法.pop()刪除:方法pop()可刪除列表元素,並接著使用它。方法中無參數時,預設刪除列表末尾元素。【列表.pop(索引)】
(3)根據值刪除元素:不知道元素索引,知道值,使用.remove()方法刪除,使用remove()從列表中刪除元素時,也可接著使用它的值。【列表.remove(值)】
註意:方法remove()只刪除第一個指定的值。如果要刪除的值可能在列表中出現多次,就需要使用迴圈來判斷是否刪除了所有這樣的值。1 # 3.刪除列表元素: 2 B=["C#","C++","python","java","GIS","RS","WebGIS"] 3 print(B) 4 5 #(1)使用del語句刪除 6 del B[1] #del 列表[索引] 7 print(B) 8 9 #(2)使用方法pop()刪除 10 B.pop() #方法中無參數時,預設刪除列表末尾元素。列表.pop() 11 print(B) 12 b1=B.pop() #使用方法pop()刪除列表元素時,可以接著使用它。所以將其賦值給變數f1 13 print(b1) 14 print(B) 15 B.pop(0) #刪除指定位置元素。列表.pop(索引) 16 print(B) 17 18 #(3)根據值刪除:不知索引,使用方法 .remove() 19 C=[11,22,33,44,55,66] 20 print(C) 21 C.remove(33) 22 print(C) 23 mm=66 #使用remove()從列表中刪除元素時,也可接著使用它的值。但是它的使用與.pop()不同,不能使用變數=列表.remove(),而是命名變數=列表元素 24 C.remove(mm) 25 print(C) 26 print("That man is "+str(mm)+" years old.") #要用str()將mm轉為字元串輸出,不然會報錯:TypeError: can only concatenate str (not "int") to str
代碼運行結果:
三、組織列表
1. 使用方法 .sort()對列表進行永久性排序
方法.sort()按字母順序排列永久改變列表順序,如果要按字母順序相反方向排列元素,則需向方法中傳遞參數reverse=True。【列表.sort()】或【列表.sort(reverse=True)】
1 #使用方法 sort()對列表進行永久性排序 2 Alist1=['Python','123','WebGIS','Cnblogs'] 3 print(Alist1) 4 Alist1.sort() #降序排列 5 print(Alist1) 6 Alist2=['Python','123','WebGIS','Cnblogs'] 7 Alist2.sort(reverse=True) #升序排列 8 print(Alist2)
代碼運行結果:
2. 使用函數 sorted()對列表進行臨時排序
函數sorted()按字母順序臨時改變列表順序,如果要按字母順序相反方向排列元素,則需向函數中傳遞參數reverse=True。【sorted(列表)】或【sorted(列表,reverse=True)】
註意:臨時排序與永久排序不一樣:臨時排序定義列表後,不能【sorted(列表)】再【print(列表)】。因為是臨時排序,直接【print(列表)】會輸出原列表。
1 #使用函數 sorted()對列表進行臨時性排序 2 print("降序排列") 3 Alist1=['123','Cnblogs','Python','WebGIS','B'] #定義列表 4 print(Alist1) #輸出原列表 5 print(sorted(Alist1)) #臨時降序排序 6 print(Alist1) #再次輸出列表,與原列表相同 7 8 print("\n升序排列") 9 Alist2=['Python','123','WebGIS','Cnblogs'] #定義列表 10 print(Alist2) #輸出原本列表 11 print(sorted(Alist2,reverse=True)) #輸出臨時升序排列!註意反向排序表達! 12 print(Alist2) #再次輸出列表,與原列表相同 13 # 註意臨時排序與永久排序不一樣:臨時排序定義列表後,不能【sorted(列表)】再【print(列表)】。因為是臨時排序,直接【print(列表)】會輸出原列表。
代碼運行結果:
-
拓展一:字元編碼排序
python預設編碼:
python 2.x預設的字元編碼是ASCII,預設的文件編碼也是ASCII。
python 3.x預設的字元編碼是unicode,預設的文件編碼是utf-8。
兩種編碼方式排序相同:以十進位表示部分字元編碼:
0~9:48~57
A~Z:69~90
a~z:97~122
-
拓展二:函數和方法形式上的區別
3. 倒著列印列表
要反轉列表元素的排列順序,可使用方法.reverse()。方法.reverse()永久性地修改列表元素的排列順序,但可隨時恢復到原來的排列順序,只需對列表再次調用reverse()即可。註意:.reverse()不是指按與字母順序相反的順序排列列表元素,而只是反轉列表元素的排列順序
1 D=['a','c','100','e','A'] 2 print(D) #原列表 3 D.reverse() #第一次反轉 4 print(D) 5 D.reverse()#第二次反轉,變回原列表 6 print(D)
代碼運行結果:
4. 確定列表的長度
使用函數len()獲取列表長度。【len(列表)】
註意:python計算元素時從1開始,要與列表索引區別開。
1 D=['a','c','100','e','A'] 2 print(len(D))
代碼運行結果: