Python列表详解:基础操作与嵌套结构
列表定义与特性
Python中的列表(list)是一种有序、可变的容器,用于存储多个元素。其基本语法为用方括号包裹逗号分隔的元素:
students = ['Alice', 20, 'Beijing', True]
列表支持混合数据类型,包括字符串、数字、布尔值甚至其他列表,且元素顺序固定,可通过索引访问。
元素查询
通过整数索引访问元素,索引从0开始:
colors = ['red', 'green', 'blue']
print(colors[0]) # 输出: red
print(colors[2]) # 输出: blue
内置函数提供更灵活的查询方式:
- index():返回指定元素首次出现的索引,未找到抛出
ValueError。
fruits = ['apple', 'banana', 'apple']
print(fruits.index('banana')) # 输出: 1
- count():统计指定元素在列表中出现的次数。
print(fruits.count('apple')) # 输出: 2
- len():返回列表总元素数量。
print(len(fruits)) # 输出: 3
使用 in 和 not in 判断元素是否存在:
print('apple' in fruits) # True
print('orange' not in fruits) # True
元素增删改
添加元素
- append():在末尾添加单个元素,即使传入列表,也会作为整体插入。
items = ['book', 'pen']
items.append('notebook')
items.append(['pencil', 'eraser'])
print(items)
# 输出: ['book', 'pen', 'notebook', ['pencil', 'eraser']]
- extend():将可迭代对象中的每个元素逐一添加到末尾。
items.extend(['pencil', 'eraser'])
print(items)
# 输出: ['book', 'pen', 'notebook', ['pencil', 'eraser'], 'pencil', 'eraser']
- insert():在指定位置插入元素,原位置及之后元素后移。
items.insert(1, 'ruler')
print(items)
# 输出: ['book', 'ruler', 'pen', 'notebook', ['pencil', 'eraser'], 'pencil', 'eraser']
删除元素
- del:根据索引删除元素或整个列表。
del items[0]
print(items) # 删除第一个元素
- pop():删除并返回指定索引处的元素,默认删除最后一个。
last_item = items.pop()
removed = items.pop(2)
print(last_item) # 'eraser'
print(removed) # 'notebook'
- remove():删除第一个匹配的元素,若不存在则报错。
items.remove('pencil')
print(items) # 删除第一个 'pencil'
- clear():清空所有元素,列表变为空。
items.clear()
print(items) # []
修改元素
直接通过索引赋值修改:
colors[0] = 'yellow'
print(colors) # ['yellow', 'green', 'blue']
reverse():反转列表顺序:
numbers = [1, 3, 5, 7]
numbers.reverse()
print(numbers) # [7, 5, 3, 1]
sort():排序,默认升序,reverse=True为降序:
nums = [9, 2, 5, 1]
nums.sort() # 升序
print(nums) # [1, 2, 5, 9]
nums.sort(reverse=True) # 降序
print(nums) # [9, 5, 2, 1]
列表复制
使用 copy() 创建浅拷贝,避免原列表被修改影响副本:
original = [1, 2, 3]
duplicate = original.copy()
duplicate.append(4)
print(original) # [1, 2, 3]
print(duplicate) # [1, 2, 3, 4]
遍历列表
while循环
适用于需要索引的场景,手动控制位置:
names = ['Anna', 'Bob', 'Charlie']
index = 0
while index < len(names):
print(names[index])
index += 1
for循环
推荐用于仅需元素值的场景,代码简洁高效:
for name in names:
print(name)
嵌套列表
列表可包含其他列表,形成二维结构:
classroom = [
['Alice', 'Bob', 'Charlie'],
['David', 'Eve', 'Frank'],
['Grace', 'Henry', 'Ivy']
]
访问嵌套元素需多级索引:
print(classroom[1][0]) # 输出: David
遍历嵌套结构使用嵌套for循环:
for group in classroom:
for student in group:
print(student, end=' ')
print() # 换行
输出:
Alice Bob Charlie David Eve Frank Grace Henry Ivy
嵌套列表常用于表示矩阵、表格或多维数据结构,是Python处理复杂数据的基础工具。
