Python列表list的詳細用法介紹
一. 創(chuàng)建列表
列表(list)作為Python中基本的數據結構,是存儲數據的容器,相當于其它語言中所說的數組。
模擬出的結構如下:

創(chuàng)建列表有兩種方式:
1.1 第一種
使用“[ ]”進行創(chuàng)建,內部元素可以是任意數據類型:
list1=["Hello","world",True,0.01,12]
1.2 第二種
使用Python中內置函數list()
list2=list(["Hello","world",True,0.01,12])
列表的特點總結:
列表元素是按照有序順序進行排序的每個索引對應一個數據列表數據可以重復存儲內部元素可以是任意數據類型根據內部元素多少動態(tài)分配內存空間
二. 查詢列表
2.1 獲取列表元素索引
使用index()函數獲取元素索引,若列表中有重復元素,只獲取第一個位置的索引,元素不存在會拋出錯誤。
list1 = ["Hello","Hello",True,0.01,12]
# 索引為 0
print(list1.index("Hello"))
# 索引為 4
print(list1.index(12))
# 索引不存在 ValueError: 100 is not in list
print(list1.index(100))給index()函數設置參數,可以在指定的范圍內查找元素的索引位置
list1 = ["Hello", "Hello", True, 0.01, 12] # 從索引1開始到索引4結束,不包括索引4,查找元素True的索引為2 print(list1.index(True, 1, 4))
2.2 獲取列表單個元素
對于一個列表,索引從前往后下標是從0~N-1,從后往前是-N~-1,N表示元素個數。
list1 = ["Hello", "Hello", True, 0.01, 12] # 獲取索引為2的元素 True print(list1[2]) # 獲取索引為-1的元素 12 print(list1[-1]) # IndexError: list index out of range print(list1[5])
2.3 獲取列表多個元素
使用索引只能獲取一個元素,想要獲取列表中多個元素使用切片。
公式:列表名[start : stop :step],意思是從哪里開始到哪里結束,可以定義步長(默認步長為1,step不能為0)。
對于切片的結果就是對原列表的拷貝生成一個新的列表對象。
切片的用法如下:
list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34] # 取索引1~6,默認步長為1:['Hello', True, 0.01, 12, 32] print(list1[1:6:]) # 取索引1~6,['Hello', True, 0.01, 12, 32] print(list1[1:6:1]) # 取索引1~6,步長為2:['Hello', 0.01, 32] print(list1[1:6:2]) # start不寫,默認從0開始:['Hello', True, 12] print(list1[:6:2]) # ['Hello', True, 12] print(list1[0:6:2]) # stop不寫, print(list1[0::2]) # step為負數 -1 [34, 32, 12, 0.01, True, 'Hello', 'Hello'] print(list1[::-1]) # [34, 12, True, 'Hello'] print(list1[::-2]) # [32, 12, 0.01, True, 'Hello', 'Hello'] print(list1[5::-1]) # [32, 12, 0.01, True] print(list1[5:1:-1])
注意:若step為負數則是從后往前開始截取切片。
2.3 判斷元素是否存在于列表
使用in或者not in,輸出的是布爾類型的值。
list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34]
# True
print("Hello" in list1)
# False
print("Hello" not in list1)
# False
print(True not in list1)
# True
print(12 in list1)遍歷列表元素:
list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34]
for i in list1:
print(i)三. 列表添加操作

list1=[10,20,30,40,50,60] # 在列表末尾添加一個元素 list1.append(34) # [10, 20, 30, 40, 50, 60, 34] print(list1) # 在列表末尾添加多個元素 list1.extend([21,12,34]) # [10, 20, 30, 40, 50, 60, 34, 21, 12, 34] print(list1) # 在列表任意位置添加一個元素 list1.insert(0,1) # [1, 10, 20, 30, 40, 50, 60, 34, 21, 12, 34] print(list1) # 在列表任意位置添加多個元素,會刪除切片的元素,然后添加新元素 list2=["hello",3,40] list1[5:8:]=list2 # [1, 10, 20, 30, 40, 'hello', 3, 40, 21, 12, 34] print(list1)
四. 列表刪除操作

list1 = [10, 20, 30, 40, 50, 60, 70] list1.remove(20) # [10, 30, 40, 50, 60, 70] print(list1) # 刪除索引為1的元素,不指定刪除最后一個元素 list1.pop(1) # [10, 40, 50, 60, 70] print(list1) # 切片刪除 list1[1:3] = [] # [10, 60, 70] print(list1)
五. 修改列表元素
為指定的索引修改元素值,也可以使用切片的方式修改。
list1 = [10, 20, 30, 40, 50, 60, 70] list1[3]="Hello" # [10, 20, 30, 'Hello', 50, 60, 70] print(list1) # 切片方式 list1[3:6]=[1,1,1,1] # [10, 20, 30, 1, 1, 1, 1, 70] print(list1)
六. 列表排序操作
有常見的兩種方式可以對列表中的元素進行排序,使用sort(),或者sorted()的方式進行排序。
兩者區(qū)別就是前者排序后不會生成新的列表對象,而后者會生成一個新的列表對象。
list1 = [10, 30, 20, 40, 80, 60]
# 原來list1: 1738929360704
print("原來list1:", id(list1))
# [10, 20, 30, 40, 60, 80] 默認升序
list1.sort()
print(list1)
# 后來list1: 1738929360704
print("后來list1:", id(list1))
# 指定reverse=True為降序
list1.sort(reverse=True)
# [80, 60, 40, 30, 20, 10]
print(list1)
###################################
list2 = [10, 30, 67, 100, 80, 32]
# 原來list2: 2357934175872
print("原來list2: ", id(list2))
list2 = sorted(list2)
# # [10, 30, 32, 67, 80, 100]
print(list2)
# 后來list2: 2357931224384
print("后來list2: ", id(list2))
# 降序
list2 = sorted(list2, reverse=True)
# [100, 80, 67, 32, 30, 10]
print(list2)此外,還可以使用循環(huán)生成列表,稱為列表生成式。
主要結構:
[ i*i for i in range(a,b) ]
通過一個for循環(huán)生成列表,i*i指的是計算公式。
代碼操作:
# 生成1-9的列表式子,并通過i+i計算 list1 = [i + i for i in range(1, 10)] # [2, 4, 6, 8, 10, 12, 14, 16, 18] print(list1)
以上就是對于Python列表的簡單操作。
到此這篇關于Python列表list的詳細用法介紹的文章就介紹到這了,更多相關Python列表list內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

