文章目錄
- 創建列表
- 基本操作
- 訪問元素(索引)
- 切片操作
- 修改列表
- 常用方法
- 列表推導式
- 多維列表
列表是 Python 中最基本、最常用的數據結構之一,它是一個有序的可變集合,可以包含不同類型的元素。
創建列表
# 空列表
empty_list = []
empty_list = list()# 包含元素的列表
numbers = [1, 2, 3, 4, 5]
fruits = ['apple', 'banana', 'orange']
mixed = [1, 'hello', 3.14, True]
基本操作
訪問元素(索引)
my_list = ['a', 'b', 'c', 'd', 'e']# 通過索引訪問(從0開始)
print(my_list[0]) # 'a'
print(my_list[2]) # 'c'# 負索引表示從末尾開始
print(my_list[-1]) # 'e'
print(my_list[-2]) # 'd'
切片操作
my_list = ['a', 'b', 'c', 'd', 'e']# 獲取子列表
print(my_list[1:3]) # ['b', 'c']
print(my_list[:3]) # ['a', 'b', 'c']
print(my_list[2:]) # ['c', 'd', 'e']
print(my_list[:]) # 復制整個列表# 步長
print(my_list[::2]) # ['a', 'c', 'e']
修改列表
列表的增刪改查操作
# 修改元素
my_list[1] = 20 # [1, 20, 3, 4]print("索引修改:", my_list)# 添加元素
my_list.append(5) # 末尾添加 [1, 20, 3, 4, 5]
print("append添加:", my_list)
my_list.insert(1, 1.5) # 指定位置插入 [1, 1.5, 20, 3, 4, 5]
print("append添加:", my_list)# 刪除元素
del my_list[0] # 刪除指定位置 [1.5, 20, 3, 4, 5]
print("del刪除:", my_list)
my_list.remove(20) # 刪除第一個匹配項 [1.5, 3, 4, 5]
print("remove刪除匹配項", my_list)
popped = my_list.pop() # 刪除并返回最后一個元素 [1.5, 3, 4], popped=5
print("pop刪除最后一個元素", my_list)
print("popped = ", popped)
常用方法
my_list = [1, 2, 3, 4, 5]# 長度
length = len(my_list) # 5
print(f"length is {length}")# 連接列表
new_list = my_list + [6, 7, 8]
print(f"new_list is {new_list}")# 重復列表
repeated = my_list * 2 # [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
print(f"repeated is {repeated}")# 排序
my_list = [1, 5, 4, 3, 2]
my_list.sort() # 原地排序
print(f"my_list is {my_list}")
sorted_list = sorted(my_list) # 返回新排序列表
print(f"sorted_list is {sorted_list}")# 反轉
my_list = [1, 5, 4, 3, 2]
my_list.reverse() # 原地反轉
print(f"my_list is {my_list}")
reversed_list = my_list[::-1] # 創建反轉副本
print(f"reversed_list is {reversed_list}")# 查找
index = my_list.index(3) # 返回第一個3的索引
print(f"index is {index}")
count = my_list.count(3) # 計算3出現的次數
print(f"count is {count}")# 清空
my_list.clear() # []
print(f"my_list is {my_list}")
列表推導式
# 創建平方數列表
squares = [x**2 for x in range(10)]# 帶條件的列表推導式
even_squares = [x**2 for x in range(10) if x % 2 == 0]# 嵌套列表推導式
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [num for row in matrix for num in row]
嵌套列表推導式分析:
嵌套列表推導式等價于兩個for循環。
flattened = [num for row in matrix for num in row]# 等價于
flattened = []
for row in matrix: # 遍歷 matrix 的每一行for num in row: # 遍歷當前行的每個元素flattened.append(num) # 將元素添加到新列表
多維列表
# 多維列表(矩陣)
matrix = [[1, 2, 3],[4, 5, 6],[7, 8, 9,[10, 11, 12]]
]# 訪問元素
print(matrix) # [[1, 2, 3], [4, 5, 6], [7, 8, 9, [10, 11, 12]]]
print(matrix[1]) # [4, 5, 6]
print(matrix[2]) # [7, 8, 9, [10, 11, 12]]
print(matrix[1][2]) # 6
print(matrix[2][3][2]) # 12# IndexError: list index out of range
# print(matrix[3])