首頁 > 軟體

Python列表list的詳細用法介紹

2022-07-15 18:00:26

一. 建立列表

列表(list)作為Python中基本的資料結構,是儲存資料的容器,相當於其它語言中所說的陣列。

模擬出的結構如下:

建立列表有兩種方式:

1.1 第一種

使用“[ ]”進行建立,內部元素可以是任意資料型別:

list1=["Hello","world",True,0.01,12]

1.2 第二種

使用Python中內建函數list()

list2=list(["Hello","world",True,0.01,12])

列表的特點總結: 

列表元素是按照有序順序進行排序的每個索引對應一個資料列表資料可以重複儲存內部元素可以是任意資料型別根據內部元素多少動態分配記憶體空間

二. 查詢列表

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()的方式進行排序。

兩者區別就是前者排序後不會生成新的列表物件,而後者會生成一個新的列表物件。

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)

此外,還可以使用迴圈生成列表,稱為列表生成式。

主要結構:

[ i*i for i in range(a,b) ]

通過一個for迴圈生成列表,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內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com