python---列表(List)
文章目录
- 创建列表
- 基本操作
- 访问元素(索引)
- 切片操作
- 修改列表
- 常用方法
- 列表推导式
- 多维列表
列表是 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])