Python 列表添加与删除元素的常用方法及注意事项

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

本文系统演示了 Python 列表中常见元素的添加与删除操作,涵盖 append、extend、insert、+ 拼接等新增方式,以及 del、pop、remove、切片等删除技巧。通过对比原地修改与新建对象的区别,帮助开发者规避内存消耗与作用域陷阱,掌握高效可靠的列表数据处理方案。

向 Python 列表添加元素的实现方式

List 是 Python 基础的数据结构之一,用于维护有序集合。针对元素新增需求,可根据是否需要原地修改、插入位置及数据来源选择以下方法。

第1步:使用 append() 追加单个元素

该方法仅在列表末尾追加一个参数作为独立对象,不展开嵌套结构。即使传入的是另一个列表,也会将其作为整体嵌套保存。

>>> list1 = ['a', 'b']
>>> list1.append('c')
>>> list1
['a', 'b', 'c']

第2步:使用 extend() 展开并追加序列

接受一个可迭代对象,将其内部每个元素逐个追加至原列表末尾,实现扁平化合并。与 append() 的核心差异在于是否展开参数。

>>> list1 = ['a', 'b', 'c']
>>> list_to_add = ['d', 'e']
>>> list1.extend(list_to_add)
>>> list1
['a', 'b', 'c', 'd', 'e']

第3步:使用 insert() 在指定索引插入

需传入索引位置与新元素两个参数。插入后原索引及之后的元素会自动后移,适用于需要精确控制顺序的场景。

>>> list1 = ['a', 'b', 'c', 'd']
>>> list1.insert(1, 'x')
>>> list1
['a', 'x', 'b', 'c', 'd']

第4步:使用 + 运算符拼接出新列表

该操作会创建全新的列表对象并返回结果,原参与运算的列表保持不变。由于涉及额外的内存分配与对象拷贝,处理超长列表时建议优先使用 append() 或 extend() 以节省资源。

>>> list1 = ['a', 'x', 'b']
>>> list2 = ['y', 'z']
>>> list3 = list1 + list2
>>> list3
['a', 'x', 'b', 'y', 'z']

从 Python 列表删除元素的操作步骤

第1步:使用 del 关键字按索引移除

直接通过下标定位并销毁对应元素,底层采用元素移位实现。操作完成后列表长度自动缩减,适合已知确切位置的清理任务。

>>> li = [1, 2, 3, 4, 5, 6]
>>> del li[2]
>>> li
[1, 2, 4, 5, 6]

第2步:使用 pop() 获取并移除尾项

默认移除并返回列表最后一个元素。若传入有效索引,则弹出对应位置内容并返回值。该方法在配合返回值进行逻辑流转时尤为实用。

>>> li = [1, 2, 4, 5, 6]
>>> removed_item = li.pop()
>>> li
[1, 2, 4, 5]
>>> removed_item
6

第3步:使用 remove() 按匹配值移除

遍历列表查找首个等于目标值的元素并将其删除。若列表中不存在该值会抛出异常,适用于未知索引但明确数据内容的场景。

>>> li = [1, 2, 4, 5]
>>> li.remove(4)
>>> li
[1, 2, 5]

第4步:使用切片表达式重建列表

利用分片语法重新构造不包含目标区段的列表。需注意:li = li[:index] + li[index+1:] 仅是将新对象绑定到局部变量名,不会修改外部引用的原始列表。若需在函数内真正改变传入的列表,应使用就地切片赋值 li[:] = ...。

# 推荐在原对象上修改的写法
def filter_by_index(li, index):
    li[:] = li[:index] + li[index+1:]

original = [1, 2, 3, 4, 5]
filter_by_index(original, 2)
print(original) # 输出 [1, 2, 4, 5]

补充场景:不修改原数据的安全过滤法

当需要依据复杂条件剔除元素,且不希望破坏原有数据结构时,可采用构建新列表的方式。通过遍历源序列并保留符合条件的项,实现声明式的非破坏性删除。

s1 = [1, 2, 3, 4, 5, 6]
skip = {2, 3, 5}
s1_filtered = [item for item in s1 if item not in skip]
print('原始:', s1)       # 保持 [1, 2, 3, 4, 5, 6]
print('过滤后:', s1_filtered) # 输出 [1, 4, 6]

简要总结

掌握 append、extend、insert 与 + 的新增边界,理解 del、pop、remove 与切片删除的作用范围,是编写稳定 Python 数据处理逻辑的基础。在实际开发中,优先选择原地修改方法可降低内存占用,而结合过滤推导式处理条件删除则能有效隔离副作用。以上就是 Python 列表添加与删除元素方法的详细内容,更多关于 Python 数据结构优化与实战技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

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

Python 相关产品和应用

全部下载

专题列表