1. 列表定义与基本操作1.1 列表定义Python列表是一种有序、可变的数据结构可以存储任意类型的元素元素之间用逗号分隔整个列表用方括号[]括起来。# 定义列表的几种方式 empty_list [] # 空列表 numbers [1, 2, 3, 4, 5] # 整数列表 fruits [apple, banana, cherry] # 字符串列表 mixed [1, hello, 3.14, True] # 混合类型列表 from_range list(range(5)) # 使用list()函数转换1.2 索引规则列表索引从0开始可以使用正索引从左到右和负索引从右到左访问元素。data [a, b, c, d, e] 正索引0-based print(data[0]) # 输出: a print(data[2]) # 输出: c 负索引-1表示最后一个元素 print(data[-1]) # 输出: e print(data[-3]) # 输出: c 索引越界会报错 print(data[10]) # IndexError: list index out of range1.3 切片用法切片用于获取列表的子集语法为list[start:stop:step]其中start包含stop不包含。nums [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 基本切片 print(nums[2:5]) # 输出: [2, 3, 4] (索引2到4) print(nums[:3]) # 输出: [0, 1, 2] (从开头到索引2) print(nums[5:]) # 输出: [5, 6, 7, 8, 9] (从索引5到末尾) print(nums[:]) # 输出: 完整列表的副本 使用步长 print(nums[::2]) # 输出: [0, 2, 4, 6, 8] (每隔一个元素) print(nums[1::2]) # 输出: [1, 3, 5, 7, 9] print(nums[::-1]) # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (反转列表) 负索引切片 print(nums[-5:-2]) # 输出: [5, 6, 7] (倒数第5个到倒数第3个)2.1 查找函数index()- 返回第一个匹配元素的索引找不到则报错items [apple, banana, cherry, banana, date] print(items.index(banana)) # 输出: 1 print(items.index(cherry)) # 输出: 2 可以指定搜索范围 print(items.index(banana, 2)) # 输出: 3 (从索引2开始搜索) 找不到会报错 print(items.index(grape)) # ValueError: grape is not in listcount()- 统计元素在列表中出现的次数numbers [1, 2, 3, 2, 4, 2, 5] print(numbers.count(2)) # 输出: 3 print(numbers.count(7)) # 输出: 0 (不存在)2.2 插入函数append()- 在列表末尾插入单个元素fruits [apple, banana] fruits.append(cherry) print(fruits) # 输出: [apple, banana, cherry] append()每次只能添加一个元素 fruits.append([date, elderberry]) # 添加的是整个列表作为单个元素 print(fruits) # 输出: [apple, banana, cherry, [date, elderberry]]insert(index, obj)- 在指定索引位置插入元素后续元素依次后移nums [1, 2, 4, 5] 在索引2处插入3 nums.insert(2, 3) print(nums) # 输出: [1, 2, 3, 4, 5] 在开头插入 nums.insert(0, 0) print(nums) # 输出: [0, 1, 2, 3, 4, 5] 在末尾插入等同于append nums.insert(len(nums), 6) print(nums) # 输出: [0, 1, 2, 3, 4, 5, 6]2.3 删除函数pop()- 删除末尾元素并返回被删除的元素pop(index)删除指定索引的元素items [apple, banana, cherry, date] 删除末尾元素 removed items.pop() print(f删除的元素: {removed}) # 输出: 删除的元素: date print(items) # 输出: [apple, banana, cherry] 删除指定索引的元素 removed items.pop(1) print(f删除的元素: {removed}) # 输出: 删除的元素: banana print(items) # 输出: [apple, cherry] 索引越界会报错 items.pop(10) # IndexError: pop index out of rangeremove(value)- 删除第一个匹配的指定元素不存在则报错values [1, 2, 3, 2, 4, 2, 5] values.remove(2) # 删除第一个2 print(values) # 输出: [1, 3, 2, 4, 2, 5] values.remove(2) # 删除第二个2 print(values) # 输出: [1, 3, 4, 2, 5] 元素不存在会报错 values.remove(10) # ValueError: list.remove(x): x not in list 可以加入if判断 if 10 in values values.remove(10)clear()- 清空列表中的所有元素my_list [1, 2, 3, 4, 5] print(f清空前: {my_list}) # 输出: 清空前: [1, 2, 3, 4, 5] my_list.clear() print(f清空后: {my_list}) # 输出: 清空后: []2.4 顺序操作函数reverse()- 原地反转列表元素顺序numbers [1, 2, 3, 4, 5] numbers.reverse() print(numbers) # 输出: [5, 4, 3, 2, 1]sort()- 原地对列表进行排序# 默认升序排序 nums [3, 1, 4, 1, 5, 9, 2] nums.sort() print(nums) # 输出: [1, 1, 2, 3, 4, 5, 9] 降序排序 nums.sort(reverseTrue) print(nums) # 输出: [9, 5, 4, 3, 2, 1, 1]