8.1 列表的定义(掌握)
列表是一个有序的、可变的序列,可以包含任意类型的元素。列表是 Python 中最常用的数据结构之一,适合存储一系列数据。列表用方括号 []
表示,元素之间用逗号分隔。
定义列表:
empty_list = [] # 空列表 numbers = [1, 2, 3, 4, 5] # 包含整数的列表 mixed_list = [1, "hello", 3.14, True] # 混合数据类型的列表
8.2 列表的基本操作(掌握)
列表支持多种基本操作,如访问、修改、添加和删除元素。
8.2.1 访问元素
使用索引访问列表中的元素,索引从 0 开始,支持负索引。
numbers = [1, 2, 3, 4, 5] print(numbers[0]) # 输出 1 print(numbers[-1]) # 输出 5(最后一个元素)
8.2.2 修改元素
使用索引修改列表中的元素。
numbers = [1, 2, 3, 4, 5] numbers[0] = 10 print(numbers) # 输出 [10, 2, 3, 4, 5]
8.2.3 列表切片
使用切片获取列表中的一部分,格式为
列表[起始:结束:步长]
。numbers = [1, 2, 3, 4, 5] print(numbers[1:4]) # 输出 [2, 3, 4] print(numbers[:3]) # 输出 [1, 2, 3] print(numbers[::2]) # 输出 [1, 3, 5] print(numbers[::-1]) # 输出 [5, 4, 3, 2, 1](列表反转)
8.2.4 列表长度
使用
len()
函数获取列表的长度。numbers = [1, 2, 3, 4, 5] print(len(numbers)) # 输出 5
8.3 列表的常用方法(掌握)
Python 提供了多种方法来操作列表,这些方法可以帮助我们对列表进行添加、删除、查找等操作。
8.3.1 append()
:添加元素到列表末尾
使用
append()
方法将元素添加到列表的末尾。numbers = [1, 2, 3] numbers.append(4) print(numbers) # 输出 [1, 2, 3, 4]
8.3.2 insert()
:在指定位置插入元素
使用
insert(index, element)
方法在指定位置插入元素。numbers = [1, 2, 3] numbers.insert(1, "hello") print(numbers) # 输出 [1, 'hello', 2, 3]
8.3.3 extend()
:扩展列表
使用
extend()
方法将一个列表的所有元素添加到另一个列表末尾。numbers = [1, 2, 3] more_numbers = [4, 5, 6] numbers.extend(more_numbers) print(numbers) # 输出 [1, 2, 3, 4, 5, 6]
8.3.4 remove()
:删除指定元素
使用
remove(element)
方法删除列表中的第一个匹配的元素。如果元素不存在,会引发ValueError
。numbers = [1, 2, 3, 2, 4] numbers.remove(2) print(numbers) # 输出 [1, 3, 2, 4]
8.3.5 pop()
:弹出指定位置的元素
使用
pop(index)
方法删除并返回指定位置的元素。如果不指定索引,默认删除并返回最后一个元素。numbers = [1, 2, 3, 4] last_element = numbers.pop() print(numbers) # 输出 [1, 2, 3] print(last_element) # 输出 4
8.3.6 clear()
:清空列表
使用
clear()
方法删除列表中的所有元素。numbers = [1, 2, 3, 4] numbers.clear() print(numbers) # 输出 []
8.3.7 index()
:查找元素的索引
使用
index(element)
方法返回元素在列表中的第一个匹配索引。如果元素不存在,会引发ValueError
。numbers = [1, 2, 3, 4] print(numbers.index(3)) # 输出 2
8.3.8 count()
:统计元素出现次数
使用
count(element)
方法统计指定元素在列表中出现的次数。numbers = [1, 2, 2, 3, 4] print(numbers.count(2)) # 输出 2
8.3.9 sort()
和 sorted()
:排序
- 使用
sort()
方法对列表进行原地排序,改变原列表。可以传入reverse=True
参数降序排序。 使用
sorted()
函数返回一个排序后的新列表,不改变原列表。numbers = [3, 1, 4, 2] numbers.sort() print(numbers) # 输出 [1, 2, 3, 4] numbers = [3, 1, 4, 2] sorted_numbers = sorted(numbers, reverse=True) print(sorted_numbers) # 输出 [4, 3, 2, 1]
8.3.10 reverse()
:反转列表
使用
reverse()
方法将列表中的元素顺序反转,改变原列表。numbers = [1, 2, 3, 4] numbers.reverse() print(numbers) # 输出 [4, 3, 2, 1]
8.4 列表的生成式(掌握)
列表生成式(List Comprehension)是一种简洁的生成列表的方法,可以用一行代码创建一个新的列表,常用于数据处理和过滤。
基本语法:
[表达式 for 变量 in 可迭代对象 if 条件]
示例:
squares = [x**2 for x in range(1, 6)] print(squares) # 输出 [1, 4, 9, 16, 25] even_numbers = [x for x in range(10) if x % 2 == 0] print(even_numbers) # 输出 [0, 2, 4, 6, 8]
8.5 列表的嵌套(掌握)
列表可以包含其他列表,形成嵌套结构,用于表示二维或多维数据。
示例:
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] print(matrix[1][2]) # 输出 6,访问第2行第3列
8.6 列表的拷贝(了解)
列表的拷贝分为浅拷贝和深拷贝。
8.6.1 浅拷贝
浅拷贝只复制列表的第一层元素,嵌套的列表仍然是引用。
original = [1, [2, 3], 4] shallow_copy = original.copy() shallow_copy[1][0] = 99 print(original) # 输出 [1, [99, 3], 4]
8.6.2 深拷贝
深拷贝递归地复制所有层级的元素,使用
copy
模块中的deepcopy()
实现。import copy original = [1, [2, 3], 4] deep_copy = copy.deepcopy(original) deep_copy[1][0] = 99 print(original) # 输出 [1, [2, 3], 4]
8.7 列表和其他数据类型的转换(了解)
Python 提供了多种内置函数,可以将其他数据类型转换为列表。
字符串转列表:使用
list()
将字符串的每个字符转为列表元素。text = "hello" text_list = list(text) print(text_list) # 输出 ['h', 'e', 'l', 'l', 'o']
元组转列表:使用
list()
将元组转换为列表。tuple_data = (1, 2, 3) list_data = list(tuple_data) print(list_data) # 输出 [1, 2, 3]
集合转列表:使用
list()
将集合转换为列表。set_data = {1, 2, 3} list_data = list(set_data) print(list_data) # 输出 [1, 2, 3]