列表(List)是Python中最常用的数据类型之一,它是一个有序、可变的元素集合。
1. 列表基础
创建列表
empty_list = [] # 空列表
numbers = [1, 2, 3, 4, 5] # 数字列表
fruits = ['apple', 'banana', 'orange'] # 字符串列表
mixed = [1, 'hello', 3.14, True] # 混合类型列表
访问元素
fruits = ['apple', 'banana', 'orange']
print(fruits[0]) # 输出: 'apple' (索引从0开始)
print(fruits[-1]) # 输出: 'orange' (负数表示从末尾开始)
2. 列表操作
修改元素
fruits = ['apple', 'banana', 'orange']
fruits[1] = 'pear' # 修改第二个元素
print(fruits) # 输出: ['apple', 'pear', 'orange']
添加元素
fruits = ['apple', 'banana']
fruits.append('orange') # 在末尾添加
fruits.insert(1, 'pear') # 在指定位置插入
print(fruits) # 输出: ['apple', 'pear', 'banana', 'orange']
删除元素
fruits = ['apple', 'pear', 'banana', 'orange']
del fruits[1] # 删除第二个元素
fruits.remove('banana') # 删除指定值的元素
popped = fruits.pop() # 删除并返回最后一个元素
3. 列表方法
常用方法
nums = [1, 2, 3, 4, 5]
nums.sort() # 排序(原地修改)
nums.reverse() # 反转(原地修改)
nums_copy = nums.copy() # 创建副本
count = nums.count(2) # 计算元素出现次数
index = nums.index(3) # 查找元素索引
列表合并
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2 # 使用+运算符
list1.extend(list2) # 使用extend方法
4. 列表切片
基本切片
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numbers[2:5]) # 输出: [2, 3, 4] (索引2到5,不包括5)
print(numbers[:3]) # 输出: [0, 1, 2] (从开始到索引3)
print(numbers[5:]) # 输出: [5, 6, 7, 8, 9] (从索引5到末尾)
print(numbers[::2]) # 输出: [0, 2, 4, 6, 8] (步长为2)
5. 列表推导式
基本语法
# 创建一个0-9的平方列表
squares = [x**2 for x in range(10)]
print(squares) # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 带条件的列表推导式
even_squares = [x**2 for x in range(10) if x % 2 == 0]
6. 列表与循环
遍历列表
fruits = ['apple', 'banana', 'orange']
# 直接遍历元素
for fruit in fruits:
print(fruit)
# 遍历索引和元素
for index, fruit in enumerate(fruits):
print(f"Index {index}: {fruit}")
7. 注意事项
- 列表是可变的,修改会影响所有引用该列表的变量
- 浅拷贝与深拷贝的区别
- 大列表操作可能消耗较多内存
- 查找操作(in, index)在长列表中较慢
8. 性能提示
- 在开头插入/删除元素较慢(使用
collections.deque
替代) - 成员测试(in操作)在集合(set)中更快
- 考虑使用生成器表达式处理大数据