第四章 列表与序列操作

目录

第四章 列表与序列操作

4.1 列表与索引

4.2 列表修改

4.3 相关内置函数

4.4 列表项处理

4.5 切片操作

4.6 别名机制

4.7 列表方法

4.8 嵌套列表

4.9 其他序列类型

4.10 文件视为列表

4.11 注释规范

4.12 本章小结


4.1 列表与索引

列表是可变的顺序容器,通过方括号创建:

fruits = ["apple", "banana", "cherry"]
colors = ["red", 255, (1,0,0)]  # 支持混合类型

索引规则

  • 正向索引:0开始,fruits[0] → "apple"

  • 负向索引:-1表示最后元素,fruits[-1] → "cherry"

4.2 列表修改

操作示例效果
直接修改fruits[1] = "mango"替换索引1的元素
追加元素fruits.append("grape")列表末尾添加元素
删除元素del fruits[0]删除第一个元素

4.3 相关内置函数

nums = [3, 1, 4, 1, 5]
print(len(nums))    # 5 → 元素数量
print(max(nums))    # 5 → 最大值
print(min(nums))    # 1 → 最小值
print(sum(nums))    # 14 → 求和
print(sorted(nums)) # [1, 1, 3, 4, 5]

4.4 列表项处理

遍历与过滤

nums = [3, 1, 4, 1, 5]
print(len(nums))    # 5 → 元素数量
print(max(nums))    # 5 → 最大值
print(min(nums))    # 1 → 最小值
print(sum(nums))    # 14 → 求和
print(sorted(nums)) # [1, 1, 3, 4, 5]

4.5 切片操作

语法list[start:end:step]

letters = ['a', 'b', 'c', 'd', 'e']
print(letters[1:3])   # ['b', 'c'] 
print(letters[::2])   # ['a', 'c', 'e']
print(letters[::-1])  # 反转列表 → ['e', 'd', 'c', 'b', 'a']

4.6 别名机制

列表赋值创建引用(非副本):

a = [1, 2, 3]
b = a  # 创建别名
b[0] = 99
print(a)  # [99, 2, 3] → 原列表被修改

创建独立副本

c = a.copy()  # 或 c = a[:]

4.7 列表方法

方法作用示例
append()末尾添加元素nums.append(9)
insert()指定位置插入nums.insert(0, 0)
remove()删除首个匹配值nums.remove(1)
pop()删除并返回指定索引元素nums.pop(2)
sort()原地排序nums.sort(reverse=True)
reverse()反转列表顺序nums.reverse()

4.8 嵌套列表

二维列表操作

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
print(matrix[1][2])  # 6 → 第二行第三列

4.9 其他序列类型

类型特性示例
元组不可变序列t = (1, "a")
字符串不可变的字符序列s = "hello"
range不可变的数字序列r = range(1,5) →1-4

4.10 文件视为列表

with open("data.txt") as f:
    lines = f.readlines()  # 按行读取为列表
    # 处理每行内容
    for line in lines:
        print(line.strip())

4.11 注释规范

# 单行注释:说明下方代码功能
population = 8_900_000  # 单位:万人(行尾注释)

"""
多行注释:解释复杂逻辑
参数说明:
- data: 二维坐标列表
- threshold: 过滤阈值
"""
def process_data(data, threshold):
    pass

4.12 本章小结

核心知识

  1. 列表是可变有序集合,支持索引/切片操作

  2. 切片语法可灵活提取子序列

  3. 列表方法实现原地修改(sort()/append()等)

  4. 嵌套列表用于处理多维数据

  5. 文件内容可转化为列表逐行处理

  6. 元组/字符串是不可变序列类型

关键区别

操作列表元组
修改元素支持不支持
内存占用较大较小
适用场景动态数据集固定数据

最佳实践

  • 优先选择列表推导式替代循环操作

  • 修改列表时注意别名问题

  • 大文件处理使用生成器替代readlines()

  • 注释应解释为什么而非做什么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值