Python 中的列表(List)是?有序、可變?的序列類型,用方括號?[]
?定義。以下是列表的核心語法和常用操作:
list1 = ['Google', 'W3Cschool', 1997, 2000]
list2 = [7, 2, 3, 4, 5, 6, 1 ]
#索引操作
print ("list1 first: ", list1[0])
print ("list2 last: ", list2[-1])#切片與拼接操作
print ("list1的前3項: ", list1[0:3])
print ("list1的2、3項: ", list1[1:3])
list2 +=list1
print("拼接后 list2:",list2)
#擴充列表
list2.extend([4,5])
print("擴充后 list2:",list2)#更新操作
print ("list1的第三個元素為: ", list1[2])
list1[2] = "1998" #直接對想要修改的數據項賦上一個新值即可修改該數據項
print ("list1的第三個元素為: ", list1[2])
#添加元素:末尾添加
list1.append(2021) #append()可以在列表后追加一項列表項
print ("追加列表項后的list1: ", list1)
#添加元素:按索引位置添加
list1.insert(2,1999)
print ("list1 插入后現在為: ", list1)#刪除:按索引刪除
del list1[0] #del可以刪掉一個元素
print ("刪除列表項后的list1: ", list1)
#按值刪除
list1.remove(2021)
print ("list1 現在為: ", list1)
輸出:
list1 first: ?Google
list2 last: ?1
list1的前3項: ?['Google', 'W3Cschool', 1997]
list1的2、3項: ?['W3Cschool', 1997]
拼接后 list2: [7, 2, 3, 4, 5, 6, 1, 'Google', 'W3Cschool', 1997, 2000]
擴充后 list2: [7, 2, 3, 4, 5, 6, 1, 'Google', 'W3Cschool', 1997, 2000, 4, 5]
list1的第三個元素為: ?1997
list1的第三個元素為: ?1998
追加列表項后的list1: ?['Google', 'W3Cschool', '1998', 2000, 2021]
list1 插入后現在為: ?['Google', 'W3Cschool', 1999, '1998', 2000, 2021]
刪除列表項后的list1: ?['W3Cschool', 1999, '1998', 2000, 2021]
list1 現在為: ?['W3Cschool', 1999, '1998', 2000]
以下來自deepseek生成
這里看看高級特性:
# 列表推導式(快速生成列表)
squares = [x**2 for x in range(5)] ?# [0, 1, 4, 9, 16]
# 條件過濾:生成0-9之間的偶數
evens = [x for x in range(10) if x%2 == 0] ?# [0,2,4,6,8]
# 嵌套推導式
matrix = [[1,2], [3,4]]
flatten = [num for row in matrix for num in row] ?# [1,2,3,4]
前兩個好理解。嵌套推導式不好理解,格式如下:
[表達式 for 外層元素 in 外層可迭代對象 for 內層元素 in 內層可迭代對象]
debug看看,是外層的row 先取一個元素[1,2],內層num再去遍歷這個[1,2].
主要是處理多維數據或者數據清洗轉換用,或者生成笛卡爾積。代碼很簡潔就是不直觀,理解起來有點困難。
嵌套式還有一種方式
[[表達式 for subitem in subiterable] for item in iterable]
# 原始二維列表 matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]# 使用嵌套列表推導式生成新二維列表 squared_matrix = [[x**2 for x in row] for row in matrix]# 打印結果 print(squared_matrix)
輸出:[[1, 4, 9], [16, 25, 36], [49, 64, 81]]
關于嵌套推導的復雜應用:推薦大佬的Python列表推導式:嵌套用法詳解_python中列表推導復雜用法-CSDN博客