列表操作
一組有序數據的組合就是列表
創建列表
空列表
方式1:變量 = []
方式2:
變量 = list()
具有一個數據的列表
變量 = [值] 備注:列表中保存的每個都稱之為元素
具有多個數據的列表
變量 = [值,值,值....]
普通操作
訪問列表中的元素
變量[索引]
修改列表中的元素
變量[索引] = 新值
添加列表元素
普通操作無法實現,需要借助函數操作
刪除列表中的元素
del 變量[索引]
刪除整個列表
del 列表變量
序列操作
通用的序列操作包括以下幾種: 序列相加、序列相乘、索引、取片/分片、成員檢測、最大值、最小值、長度計算
列表相加操作
格式:變量 = 列表1 + 列表2
結果:新的列表
注意:+兩側都要是列表類型
列表相乘操作
格式:變量 = 列表 * 整數
結果:新的列表
索引操作
變量[索引]
分片操作
格式:變量 = 列表[:]獲取整個列表
格式:變量 = 列表[:結束索引]
獲取列表開頭到結束索引之前的數據組成的列表
格式:變量 = 列表[開始索引:]
獲取列表開始索引到列表末尾的數據組成的列表
格式:變量 = 列表[開始索引:結束索引]
獲取開始索引和結束索引之間的數據組成的列表(包含開始索引,不包含結束索引)
格式:變量 = 列表[開始索引:結束索引:間隔值]
獲取開始索引和結束索引之間的數據(按照間隔值來獲取)組成的列表(包含開始索引,不包含結束索引)
成員檢測
檢測一個數據是否在列表中格式:值 in 列表結果:布爾值檢測一個數據是否不在列表中格式:值 not in 列表結果:布爾值
序列操作函數
len()
計算列表中元素的個數
max()
獲取列表中的最大值
min()
獲取列表中的最小值
list()
生成空列表或者將其他數據轉化為列表類型
列表的遍歷操作
for...in
for 變量 in 列表:使用變量
while
i = 0
while i<len(列表):使用列表中的元素(列表[i])i += 1
遍歷同等長度的二級列表
列表 = [[值1,值2],[值1,值2],....]
for 變量1,變量2 in 列表:使用變量1和變量2
#注意:變量1取二級列表中的第一個值,變量2取第二個值
遍歷非同等長度的二級列表
列表 = [[值1,值2],[值1,值2,值3],[值]...]
for 變量1 in 列表:for 變量2 in 變量1:使用變量2(變量2是二級列表中的每個值)
列表內涵/列表推導式 list content
簡單的列表推導式
格式:[變量 for 變量 in 列表]
結果:遍歷列表中的每個值,將每個值獲取之后組成新的列表,可以對獲取的值進行修改
[變量可以其他操作 for 變量 in 列表]
帶有判斷條件的列表推導式
格式:[變量 for 變量 in 列表 if 條件表達式]
結果:遍歷列表中的每個值,根據判斷條件決定是否取出指定的值組成新的列表,可以對獲取的值進行修改
多個列表的同時循環的列表推導式
格式:[變量1+變量2 for 變量1 in 列表1 for 變量2 in 列表2]
結果:同時遍歷列表1和列表2中的每個值,將列表1中的每個值和列表2中的每個值進行運算得到新的列表新的列表中元素個數=列表1中元素個數 * 列表2中的元素個數
變量1和變量2可以進行其他操作,不一定非要+ 這只是demo
帶有判斷條件的多個列表的同時循環列表推導式
格式:[變量1+變量2 for 變量1 in 列表1 for 變量2 in 列表2 if 條件表達式]
結果:同時遍歷列表1和列表2中的每個值,根據判斷條件將列表1中的值和列表2中的值進行運算,得到新的列表
新的列表數量由判斷條件決定
列表專用函數
append()
功能:向列表的末尾添加新的元素
格式:列表.append(值)
返回值:None
注意:新添加的值在列表的末尾,該函數直接操作原有列表
clear()
功能:清空列表中所有元素
格式:列表.clear()
返回值:None
copy()
功能:復制列表
格式:列表.copy()
返回值:新的列表
count()
功能:計算某個元素出現的次數
格式:列表.count(值)
返回值:整數
extend()
功能:將一個列列表繼承另一個列表
格式:列表.extend(序列)
返回值:None
注意:直接改變原有列表
index()
功能:獲取某個值在列表中的索引
格式:列表.index(值)
返回值:整數
注意:值不存在與列表時拋出異常錯誤!
insert()
功能:在指定位置之前插入元素
格式:列表.insert(索引,值)
返回值:None
注意:直接改變原有列表
pop()
功能:在列表中移除一個元素
格式:列表.pop([索引])
返回值:無
注意:沒有指定索引,默認移除最后一個元素
remove()
功能:移除指定的值
格式:列表.remove(值)
返回值:無
注意:如果有索引的清空下推薦使用POP移除,效率比remove高
reverse()
功能:列表反轉操作
格式:列表.reverse()
返回值:None
sort()
功能:列表排序
格式:列表.sort() 按照從小到大排序(數字)
格式:列表.sort(reverse=True) 按照從大到小排序(數字)
格式:列表.sort(key=函數) 對值進行指定的函數處理之后在從小到大排序
格式:列表.sort(key=函數,reverse=True) 對值進行指定的函數處理之后在從大到小排序
返回值:None
注意:直接改變原有列表