Python 列表(List)是一种有序、可变的序列类型,用于存储多个元素。以下是关于列表的所有基础知识:
1. 列表的定义
列表使用方括号 [] 定义,元素之间用逗号分隔,元素类型可以不同:
# 空列表
empty_list = []
# 包含相同类型元素
numbers = [1, 2, 3, 4, 5]
# 包含不同类型元素
mixed = [1, "hello", 3.14, True, [1, 2, 3]]
2. 列表的特性
- 有序性:元素有明确的顺序,可通过索引访问
- 可变性:可以修改、添加、删除元素
- 可重复性:允许包含重复元素
- 动态性:列表长度会根据元素增减自动调整
3. 列表的索引与切片
索引:从 0 开始,支持负索引(从末尾计数)
fruits = ["apple", "banana", "cherry", "date"] print(fruits[0]) # "apple"(第一个元素) print(fruits[-1]) # "date"(最后一个元素) print(fruits[-2]) # "cherry"(倒数第二个元素)切片:
list[start:end:step],包含 start 不包含 endnumbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(numbers[2:5]) # [2, 3, 4] print(numbers[:3]) # [0, 1, 2] print(numbers[7:]) # [7, 8, 9] print(numbers[::2]) # [0, 2, 4, 6, 8](步长为2) print(numbers[::-1]) # [9, 8, 7, ..., 0](反转列表)
4. 列表的基本操作
访问元素:通过索引直接访问
colors = ["red", "green", "blue"] print(colors[1]) # "green"修改元素:通过索引重新赋值
colors[1] = "yellow" print(colors) # ["red", "yellow", "blue"]拼接列表:使用
+运算符list1 = [1, 2, 3] list2 = [4, 5, 6] combined = list1 + list2 # [1, 2, 3, 4, 5, 6]重复列表:使用
*运算符repeated = [0] * 5 # [0, 0, 0, 0, 0]列表长度:使用
len()函数print(len([1, 2, 3])) # 3检查元素是否存在:使用
in和not infruits = ["apple", "banana"] print("apple" in fruits) # True print("orange" not in fruits) # True
5. 列表常用方法
添加元素
fruits = ["apple", "banana"] fruits.append("cherry") # 在末尾添加:["apple", "banana", "cherry"] fruits.insert(1, "orange") # 在指定位置插入:["apple", "orange", "banana", "cherry"] fruits.extend(["date", "grape"]) # 扩展列表:添加多个元素删除元素
fruits = ["apple", "banana", "cherry", "date"] fruits.remove("banana") # 删除指定值的元素 popped = fruits.pop() # 删除并返回最后一个元素 popped = fruits.pop(0) # 删除并返回指定索引的元素 del fruits[1] # 删除指定索引的元素 fruits.clear() # 清空列表排序与反转
numbers = [3, 1, 4, 1, 5, 9] numbers.sort() # 原地排序(升序) numbers.sort(reverse=True) # 原地排序(降序) sorted_numbers = sorted(numbers) # 返回新的排序后的列表 numbers.reverse() # 原地反转列表 reversed_numbers = numbers[::-1] # 返回新的反转后的列表查找与计数
numbers = [1, 2, 3, 2, 4, 2] print(numbers.index(2)) # 1(返回第一个匹配项的索引) print(numbers.count(2)) # 3(计数元素出现的次数)其他常用方法
fruits = ["apple", "banana", "cherry"] copied = fruits.copy() # 复制列表(浅拷贝)
6. 列表推导式
一种简洁创建列表的方式:
# 基本形式:[表达式 for 变量 in 可迭代对象]
squares = [x**2 for x in range(10)] # [0, 1, 4, 9, ..., 81]
# 带条件的列表推导式
even_numbers = [x for x in range(20) if x % 2 == 0] # [0, 2, 4, ..., 18]
# 嵌套列表推导式
matrix = [[1, 2], [3, 4], [5, 6]]
flattened = [num for row in matrix for num in row] # [1, 2, 3, 4, 5, 6]
7. 多维列表
列表可以包含其他列表,形成多维列表(如矩阵):
# 二维列表
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 访问元素
print(matrix[1][2]) # 6(第二行第三列)
# 遍历二维列表
for row in matrix:
for num in row:
print(num, end=" ")
8. 列表与其他数据类型的转换
# 字符串转列表
s = "hello"
chars = list(s) # ['h', 'e', 'l', 'l', 'o']
# 元组转列表
t = (1, 2, 3)
lst = list(t) # [1, 2, 3]
# 集合转列表
s = {
1, 2, 3}
lst = list(s) # [1, 2, 3](顺序不确定)
掌握这些列表基础知识,你可以处理大多数需要存储和操作序列数据的场景。列表是Python中最常用的数据结构之一,灵活运用列表方法和推导式可以大大提高编程效率。