Python 列表 list 基础与核心操作指南

Dylan
Dylan
发布时间:2026-10-12 | 3人浏览过
原创

Python 列表是有序可变的数据集合,支持任意类型嵌套。本文系统讲解列表的创建方式、正负索引与切片规则、增删改查标准方法、拼接运算,以及 reverse、sort 与 sorted 排序参数的实际应用,帮助开发者高效掌握 Python 列表的核心操作。

列表的定义与初始化

列表是以方括号 [] 包裹的数据结构,内部元素以逗号分隔。其核心特征为有序性与可变性,允许包含任何数据类型甚至其他列表。除直接字面量赋值外,还可借助内置函数进行转换:

>>> l = []  # 空列表
>>> l = [1, 2, 3]
>>> l = [1, 2, 3, ['a', 'b']]  # 支持嵌套
>>> list('python')
['p', 'y', 't', 'h', 'o', 'n']
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> '1;2;3'.split(';')
['1', '2', '3']

正负索引与切片提取

列表成员通过偏移量访问。正索引从左至右从 0 开始,负索引从右至左以 -1 起始。切片操作遵循 [start:stop] 规则,左闭右开,默认步长为 1:

>>> languages = ['Python', 'Shell', 'Perl', 'PHP', 'Java', 'C', 'C++', 'Lisp']
>>> languages[0]     # 首个元素
'Python'
>>> languages[3:]    # 从索引3截取至末尾
['PHP', 'Java', 'C', 'C++', 'Lisp']
>>> languages[:3]    # 截取前三个元素
['Python', 'Shell', 'Perl']
>>> languages[-1]    # 倒数第一个
'Lisp'
>>> languages[-5:-2] # 负索引切片
['PHP', 'Java', 'C']

元素的增删改查标准操作

列表的增删改查是日常编码最高频的操作,需注意各方法的副作用差异:

第1步:追加与插入元素

.append() 将单个对象置于末尾;.insert() 指定位置插入并后移后续元素;.extend() 用于合并迭代对象,等价于 += 运算。

>>> languages.append('Go')
>>> languages.insert(3, 'Swift')  # 在索引3处插入
>>> languages.extend(['Ruby', 'C#'])

第2步:精准查找与定位

.index(value) 返回目标值首次出现的索引;使用 in 关键字判断存在性。注意:index() 仅返回位置,统计频次请使用 .count()。

>>> languages.index('Python')
0
>>> 'Java' in languages
True
>>> languages.count('Python')
1

第3步:安全删除元素

.remove() 按值移除首次匹配项,不存在会抛出异常;.pop() 按索引弹出并返回该值(默认末尾);del 可直接按索引或切片原地删除多元素。

>>> languages.remove('C')  # 删除首个'C'
>>> languages.pop()        # 弹出最后一个元素并返回
>>> del languages[2:4]     # 删除索引2到3的元素

第4步:按索引覆盖修改

列表可变的核心体现,直接通过下标赋值即可替换原数据:

>>> languages[2] = 'Kotlin'
>>> languages[languages.index('C++')] = 'Rust'  # 配合索引定位修改

列表拼接与扩展运算

Python 提供直观的运算符处理列表组合:+ 生成新列表连接两侧元素;* 实现列表内容重复拼接;+= 则就地扩展原列表,内存效率更高。

>>> L1 = ['A', 'B'] + ['C']
>>> NumList = [1, 2] * 3
[1, 2, 1, 2, 1, 2]
>>> L1 += ['D']  # 等同于 L1.extend(['D'])

逆序反转与排序规则

Python 提供原地操作与函数式两种排序路径,适用于不同场景:

第1步:快速逆序处理

.reverse() 原地翻转列表;切片 [::-1] 返回副本并逆序,不修改原始数据。

第2步:升序与降序排列

.sort() 修改原列表;sorted(iterable) 返回新排序列表,兼容任意可迭代对象。两者均支持 key 指定比较维度与 reverse 控制方向。

>>> data = [(13, 54), (11, 59), (15, 55)]
>>> data.sort(key=lambda x: x[1])  # 按元组第二个元素升序
>>> data.sort(key=lambda x: x[1], reverse=True)  # 降序
>>> sorted(data, key=lambda x: x[1])  # 不改变原列表

版本说明:Python 3 已移除 sort() 的 cmp 参数,统一推荐基于 key 函数进行自定义排序,性能更优且符合现代规范。

总结

Python 列表作为最基础的动态数据结构,通过灵活的索引切片、明确的增删改查方法以及强大的排序机制,覆盖了绝大多数数据处理需求。掌握原地操作与副本操作的边界,合理选择 sort 与 sorted,能够显著提升代码可读性与执行效率。以上就是 Python 列表 list 基础操作与排序技巧的详细内容,更多关于 Python 数据结构优化的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表