一、串列是什么
-
串列:由一系列按特定順序排列的元素組成(串列是有序集合),
-
表示:用方括號[]來表示,并用逗號來分隔其中的元素,
-
訪問:訪問串列元素,可指出串列的名稱,再指出元素的索引,并將其放在方括號內,請求獲取串列元素時,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))
代碼運行結果:
![]()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/541471.html
標籤:Python
上一篇:Odoo 美化登錄界面
