大家好!我是【AI 菌】,有幸入選這次【博客之星】總評選,請為我投出關鍵的一票,可選擇最大票數,非常感謝!1月25日前,每天都有可投票哦~
投票通道:https://bss.csdn.net/m/topic/blog_star2020/detail?username=wjinjie

-> 前往【人生苦短,我學 Python】總目錄 <-
文章目錄
- 一、串列簡介
- (1) 什么是串列
- (2) 訪問串列元素
- (3) 嵌套串列
- 二、 索引、切分與串列復制
- (1) 索引
- (2) 切片
- (3) 串列復制
- 三、串列元素個數、最大值、最小值、轉換
- (1) 回傳元素個數
- (2) 回傳元素最大值
- (3) 回傳元素最小值
- (4) 將元組轉換成串列
- 四、修改、添加和洗掉操作
- (1) 修改串列元素
- (2) 在串列末尾添加元素
- (3) 在串列中插入元素
- (4) 洗掉串列元素
- 五、串列運算子
- (1) 拼接運算子
- (2) 復制運算子
- 六、串列排序
- (1) 永久性排序sort()
- (2) 臨時性排序sorted()
- 七、其他成員函式
- (1) 統計某元素出現的次數count()
- (2) 從串列中找出某個值第一個匹配項的索引位置index()
- (3) 反向串列中元素reverse()
- (4) 清空串列clear()
- (5) 復制串列copy()
一、串列簡介
(1) 什么是串列
串列由一系列按特定順序排列的元素組成,這些元素可以是:數字、字母、字串等其它型別的資料,在 Python 中,用方括號 [ ] 來表示串列,并用逗號來分隔其中的元素,下面是一個簡單的串列示例:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday",
"Friday", "Saturday", "Sunday"]
print(week_list)
如果你使用print()函式, Python 將列印串列的內部表示,包括方括號:
['Monday', 'Tuseday', 'Wednseday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
如果你想直接輸出串列里的每個元素,那么就得學習如何訪問串列的元素,
(2) 訪問串列元素
串列是有序集合,因此要訪問串列的任何元素,只需知道該元素在串列中的位置即可,要訪問串列元素,可指出串列的名稱,再指出元素的索引,并將其放在方括號內,例如,我們要獲取上面串列中的Friday:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday",
"Friday", "Saturday", "Sunday"]
print(Week_list[4])
以上演示了訪問串列元素的語法,當你請求獲取串列元素時, Python 只回傳該元素值,而不包括方括號和引號:
Friday
當然,如果你想依次輸出串列中的每一個元素,可以通過for實作:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday",
"Friday", "Saturday", "Sunday"]
for day in Week_list:
print(day)
通過for回圈遍歷串列,依次輸出每一個元素:
Monday
Tuseday
Wednseday
Thursday
Friday
Saturday
Sunday
(3) 嵌套串列
嵌套串列即在串列里創建其它串列,例如:
list1 = [1, 2, 3]
list2 = ["曹操", "孫權", "劉備"]
list = [list1, list2]
print(list)
嵌套串列相當于串列里的元素是串列:
[[1, 2, 3], ['曹操', '孫權', '劉備']]
當想要取串列里的一個元素時,比如“曹操”,就需要學習索引的用法,
二、 索引、切分與串列復制
(1) 索引
索引值與元素的位置有關,在 Python 中,第一個串列元素的索引為 0 ,而不是 1 ,根據這種簡單的計數方式,要訪問串列的任何元素,都可將其位置減 1 ,并將結果作為索引,例如,要訪問第10個串列元素,可使用索引 9,
對于普通的串列,當我們想訪問其第5個元素時:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday",
"Friday", "Saturday", "Sunday"]
print(Week_list[4])
程式輸入:
Friday
對于嵌套串列,當我們想訪問其中的元素,比如上面串列中的“曹操”,則通過如下方式:
list = [[1, 2, 3], ['曹操', '孫權', '劉備']]
print(list[1][0])
程式輸入:
曹操
其中,list[1][0]中的索引值1表示取第二個串列,索引值0表示取第二個串列中的第一個元素,
(2) 切片
通過索引可以訪問單個串列元素,通過切片則可以處理串列的全部或部分元素,要創建切片,可指定要使用的第一個元素和最后一個元素的索引,主要注意的是:Python 在到達你指定的第二個索引前面的元素后停止,
1.例如:要輸出串列中的前三個元素,需要指定索引 0~3 ,這將輸出分別為 0 、 1 和 2 的元素,
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
print(Week_list[0:3])
通過切片取串列的前三個元素:
['Monday', 'Tuseday', 'Wednseday']
2.你也可以獲取串列的任何子集,例如,如果你要提取串列的第 2~6 個元素,可將起始索引指定為 1 ,并將終止索引指定為 6 :
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
print(Week_list[1:6])
輸出周二至周六:
['Tuseday', 'Wednseday', 'Thursday', 'Friday', 'Saturday']
3.如果沒有指定第一個索引, Python 將自動從串列開頭開始:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
print(Week_list[:6])
輸出周一至周六:
['Monday', 'Tuseday', 'Wednseday', 'Thursday', 'Friday', 'Saturday']
4.如果想取從第 3 個元素到串列末尾的所有元素,也可以通過如下方式:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
print(Week_list[2:])
回傳周三至周天:
['Wednseday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
5.如果要遍歷串列的部分元素,則可在 for 回圈中使用切片,
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
for day in Week_list[:3]:
print(day)
遍歷串列1至3個元素,并輸出:
Monday
Tuseday
Wednseday
(3) 串列復制
在開發程序中,我們經常需要根據既有串列創建全新的串列,下面來介紹復制串列的作業原理,以及復制串列可提供極大幫助的一種情形,
要復制串列,可創建一個包含整個串列的切片,方法是同時省略起始索引和終止索引 [ : ] ,這讓 Python 創建一個始于第一個元素,終止于最后一個元素的切片,即復制整個串列,
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
Week_list_copy1 = Week_list
Week_list_copy2 = Week_list[:]
print("Week_list:", id(Week_list))
print("Week_list_copy1:", id(Week_list_copy1))
print("Week_list_copy2:", id(Week_list_copy2))
我們通過采用和不采用 [ : ]的兩種方式進行復制,得到串列的id如下:
Week_list: 298963473096
Week_list_copy1: 298963473096
Week_list_copy2: 298963418440
從結果可以看出:Week_list_copy1與原串列Week_list的id相同,說明Week_list_copy1和原串列指向的是同一個串列;Week_list_copy2與原串列Week_list的id不同,說明通過 [ : ] 的方式復制,創建的才是一個新的串列,
三、串列元素個數、最大值、最小值、轉換
在Python中,包含一些內置函式,可以輕松處理像串列這一型別的資料,
(1) 回傳元素個數
對于普通串列,回傳串列元素的個數:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday",
"Friday", "Saturday", "Sunday"]
print(len(Week_list))
程式輸出:
7
對于嵌套串列,回傳串列中串列的個數:
list = [[1, 2, 3], ['曹操', '孫權', '劉備']]
print(len(list))
程式輸出:
2
(2) 回傳元素最大值
max() 方法回傳串列元素中的最大值:
list1, list2 = ['Google', 'Baidu', 'Taobao'], [1, 2, 3]
print("list1 最大元素值 : ", max(list1))
print("list2 最大元素值 : ", max(list2))
輸出串列中元素的最大值:
list1 最大元素值 : Taobao
list2 最大元素值 : 3
(3) 回傳元素最小值
min() 方法回傳串列元素中的最小值:
list1, list2 = ['Google', 'Baidu', 'Taobao'], [1, 2, 3]
print("list1 最小元素值 : ", min(list1))
print("list2 最小元素值 : ", min(list2))
輸出串列中元素的最小值:
list1 最小元素值 : Baidu
list2 最小元素值 : 1
(4) 將元組轉換成串列
list() 方法用于將元組或字串轉換為串列:
str = "Hello Python"
list2 = list(str)
print("串列元素 : ", list2)
Tuple = (123, 'Google', 'baidu', 'Taobao')
list1 = list(Tuple)
print("串列元素 : ", list1)
程式結果:
串列元素 : ['H', 'e', 'l', 'l', 'o', ' ', 'P', 'y', 't', 'h', 'o', 'n']
串列元素 : [123, 'Google', 'baidu', 'Taobao']
注:元組與串列是非常類似的,區別在于元組的元素值不能修改,元組是放在括號中,串列是放于方括號中,
四、修改、添加和洗掉操作
(1) 修改串列元素
修改串列元素的語法與訪問串列元素的語法類似,要修改串列元素,可指定串列名和要修改的元素的索引,再指定該元素的新值,比如下面,我們將串列中的第一個值:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday",
"Friday", "Saturday", "Sunday"]
Week_list[0] = "星期一"
print(Week_list)
將串列中的Monday改為“星期一”:
['星期一', 'Tuseday', 'Wednseday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
當然,你可以修改任何串列元素的值,而不僅僅是第一個元素的值,
(2) 在串列末尾添加元素
在串列中添加新元素時,最簡單的方式是使用append()將元素添加到串列末尾:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday",
"Friday", "Saturday", "Sunday"]
Week_list.append(100)
print(Week_list)
將100添加到串列末尾:
['Monday', 'Tuseday', 'Wednseday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 100]
使用append() 能很輕松地創建串列,例如,你可以先創建一個空串列,再使用一系列的 append() 陳述句添加元素,下面來創建一個空串列,再在其中添加元素:
Week_list = []
Week_list.append(1)
Week_list.append(2)
Week_list.append(3)
print(Week_list)
程式輸出:
[1, 2, 3]
(3) 在串列中插入元素
使用方法 insert() 可在串列的任何位置添加新元素,為此,你需要指定新元素的索引和值:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday",
"Friday", "Saturday", "Sunday"]
Week_list.insert(0, 100)
print(Week_list)
在串列開頭添加100:
[100, 'Monday', 'Tuseday', 'Wednseday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
(4) 洗掉串列元素
在資料處理程序中,我們經常需要從串列中洗掉一個或多個元素,Python提供了4中洗掉串列中元素的方法:
1.使用 del 陳述句洗掉元素,如果知道要洗掉的元素在串列中的位置,可使用 del 陳述句,
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
del Week_list[0]
print(Week_list)
洗掉串列中第一個元素:
['Tuseday', 'Wednseday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
2.使用方法 pop() 洗掉元素,方法 pop() 可洗掉串列末尾的元素,并讓你能夠接著使用它,
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
Week_list.pop()
print(Week_list)
洗掉串列中最后一個元素:
['Monday', 'Tuseday', 'Wednseday', 'Thursday', 'Friday', 'Saturday']
3.洗掉串列中任何位置處的元素, 實際上,使用 pop() 也可以洗掉串列中任何位置的元素,只需在括號中指定要洗掉的元素的索引即可,
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
Week_list.pop(1)
print(Week_list)
洗掉串列中第二個元素:
['Monday', 'Wednseday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
注:如果你不確定該使用 del 陳述句還是 pop() 方法,下面是一個簡單的判斷標準:如果你要從串列中洗掉一個元素,且不再以任何方式使用它,就使用 del 陳述句;如果你要在洗掉元素后還能繼續使用它,就使用方法 pop() ,
4.根據值洗掉元素,有時候,你不知道要從串列中洗掉的值所處的位置,如果你只知道要洗掉的元素的值,可使用方法 remove() ,
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
Week_list.remove("Monday")
print(Week_list)
洗掉串列中的元素"Monday":
['Tuseday', 'Wednseday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
注:remove() 洗掉的是串列中某個值的第一個匹配項
五、串列運算子
(1) 拼接運算子
在Python,+ 也可作為拼接運算子,將不同串列拼接成一個串列:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(list1 + list2)
拼接成一個串列后:
[1, 2, 3, 4, 5, 6]
(2) 復制運算子
使用 * 運算子,可以輕松實作串列元素的復制:
list = [1, 2, 3]
print(list * 2)
將串列中所有元素復制到2倍:
[1, 2, 3, 1, 2, 3]
同樣地道理,也可以復制多倍,
六、串列排序
在實際開發程序中,有時候你希望保留串列元素最初的排列順序,而有時候又需要調整排列順序, Python 提供了很多組織串列的方式,可根據具體情況選用,
(1) 永久性排序sort()
sort() 讓你能夠較為輕松地對串列進行排序,下面對串列中的元素按照字母進行排序:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
Week_list.sort()
print(Week_list)
通過 sort()進行排序,是永久性地改變原串列中元素的順序:
['Friday', 'Monday', 'Saturday', 'Sunday', 'Thursday', 'Tuseday', 'Wednseday']
當要降序排序時,只需向 sort() 方法傳遞引數 reverse=True,如下所示:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
Week_list.sort(reverse=True)
print(Week_list)
降序排序結果如下所示:
['Wednseday', 'Tuseday', 'Thursday', 'Sunday', 'Saturday', 'Monday', 'Friday']
(2) 臨時性排序sorted()
有時候想對串列進行排序,又需要時保留原串列元素的順序,就可以使用sorted()函式,
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
Week_list_sorted = sorted(Week_list)
print(Week_list_sorted)
print(Week_list)
比較排序后的輸結果:
['Friday', 'Monday', 'Saturday', 'Sunday', 'Thursday', 'Tuseday', 'Wednseday']
['Monday', 'Tuseday', 'Wednseday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
可以看出:sorted() 并沒有改變原串列中元素的順序,
七、其他成員函式
(1) 統計某元素出現的次數count()
count() 方法用于統計某個元素在串列中出現的次數,比如:
list = [1, 2, 2, 2, 3]
print("串列中2的個數:", list.count(2))
運行結果:
串列中2的個數: 3
(2) 從串列中找出某個值第一個匹配項的索引位置index()
index() 函式用于從串列中找出某個值第一個匹配項的索引位置,比如找出串列中的2的索引:
list = [1, 2, 2, 2, 3]
print("串列中2第一次出現的索引:", list.index(2))
運行結果:
串列中2第一次出現的索引: 1
另外,也可以指定從串列某個位置開始搜索:
list = [1, 2, 2, 2, 3, 2, 3]
print("從第五個元素開始,串列中2第一次出現的索引:", list.index(2, 4))
從索引值為4的元素開始搜索,結果為:
從第五個元素開始,串列中2第一次出現的索引: 5
(3) 反向串列中元素reverse()
reverse() 函式用于反向串列中元素,當我們要反向輸出串列中元素時:
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
Week_list.reverse()
print(Week_list)
顛倒串列中元素的位置后,輸出結果為:
['Sunday', 'Saturday', 'Friday', 'Thursday', 'Wednseday', 'Tuseday', 'Monday']
(4) 清空串列clear()
clear() 函式用于清空串列,類似于 del a[:],
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
Week_list.clear()
print ("串列清空后 : ", Week_list)
串列清空后:
串列清空后 : []
(5) 復制串列copy()
copy() 函式用于復制串列,類似于前面講到的通過索引[:]復制的方式,
Week_list = ["Monday", "Tuseday", "Wednseday", "Thursday", "Friday", "Saturday", "Sunday"]
Week_list_copy1 = Week_list.copy()
print("Week_list:", id(Week_list))
print("Week_list_copy():", id(Week_list_copy1))
運行結果:
Week_list: 250643256008
Week_list_copy(): 250643201352
可以看出:使用copy()函式復制的方式與通過[:]復制的方式類似,都是創建了一個新的串列,
-> 回到【人生苦短,我學 Python】總目錄 <-

由于水平有限,博客中難免會有一些錯誤,有紕漏之處懇請各位大佬不吝賜教!
CSDN認證博客專家
博客專家
CSDN合作伙伴
演算法實習僧
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250618.html
標籤:AI
上一篇:5G邊緣計算網關的型別
