Python列表list的詳細用法介紹

一. 創建列表

列表(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內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: