游乐游手机版
首页/编程语言/文章详情

Python常用添加与删除元素API完整代码示例

时间:2026-06-26 06:55
Python列表、字典、集合、栈和队列的增删API各有特点:列表通过追加、插入、扩展添加,弹出、移除删除;字典通过键赋值或弹出删除;集合用添加、更新添加,移除与丢弃区别在于是否报错;栈用list的追加和弹出实现;队列推荐deque(双端队列)实现追加和左侧弹出操作。

Python 序列类型常用添加与删除元素 API 全面解析

1. list 列表的增删操作详解

在日常 Python 开发中,对列表(list)进行元素的添加、删除、修改与查询是最为普遍的场景。本文将系统梳理列表增删操作的常用 API,并附上清晰示例,方便开发者随时查阅与复用。

操作API示例
在尾部追加元素append(x)arr.append(4)
在指定位置插入insert(i, x)arr.insert(1, 99)
批量添加多个元素extend(iterable)arr.extend([5, 6])
删除并返回末尾元素pop()arr.pop()
删除并返回指定下标元素pop(i)arr.pop(0)
删除匹配到的第一个值remove(x)arr.remove(99)
使用 del 语句删除指定下标del arr[i]del arr[1]
清空所有元素clear()arr.clear()

示例代码:

Python常用添加/删除元素API的完整代码

arr = [1, 2, 3]

arr.append(4)        # 在尾部追加元素 [1, 2, 3, 4]
arr.insert(1, 99)    # 在下标 1 处插入 99 [1, 99, 2, 3, 4]
arr.extend([5, 6])   # 批量追加 [5, 6] [1, 99, 2, 3, 4, 5, 6]

arr.pop()            # 删除并返回末尾元素
arr.pop(0)           # 删除并返回下标 0 的元素
arr.remove(99)       # 删除第一个值为 99 的元素

2. dict 字典的键值对增删操作

字典(dict)以键值对形式存储数据,其增删逻辑非常直观,核心就是通过键来操作。值得留意的是,pop() 方法可以接收第二个参数作为默认值,当待删除的键不存在时不会抛出 KeyError,而是返回该默认值——这是提升代码健壮性的实用技巧。

操作API示例
添加或修改键值对dict[key] = valuemp["a"] = 1
删除指定 keypop(key)mp.pop("a")
使用 del 删除指定 keydel dict[key]del mp["a"]
安全删除(带默认值)pop(key, 默认值)mp.pop("x", None)
清空所有键值对clear()mp.clear()

示例代码:

mp = {}

mp["a"] = 1
mp["b"] = 2

mp["a"] = 100       # 修改键 "a" 的值为 100

mp.pop("b")         # 删除键 "b" 及其值
mp.pop("x", None)   # 键 "x" 不存在时返回 None,不会报错

3. set 集合的添加与删除操作

使用集合(set)时,需要特别关注 remove()discard() 的区别:前者若要删除的元素不存在会立即抛出 KeyError,后者则会静默忽略。实际开发中,选择哪个方法取决于你是否希望程序在遇到意外数据时立即中断执行。

操作API示例
添加单个元素add(x)s.add(4)
批量添加多个元素update(iterable)s.update([5, 6])
删除指定元素(不存在则报错)remove(x)s.remove(3)
安全删除指定元素(不存在忽略)discard(x)s.discard(10)
随机删除并返回一个元素pop()s.pop()
清空所有元素clear()s.clear()

示例代码:

s = {1, 2, 3}

s.add(4)
s.update([5, 6])

s.remove(3)      # 元素 3 存在,正常删除;若不存在则报 KeyError
s.discard(10)    # 元素 10 不存在,不会引发任何错误

4. 字符串 str 的“修改”操作(实际不可变)

字符串(str)在 Python 中是不可变类型,这意味着你不能像修改列表那样直接改变其中的某个字符。每一次看似“修改”的操作,实际上都是创建了一个全新的字符串对象。这一特性需要特别注意,尤其是在大量字符串拼接的场景下可能影响性能。

s = "abc"

s = s + "d"              # 拼接后得到新字符串 "abcd"
s = s.replace("a", "x")  # 替换后得到新字符串 "xbcd"

错误写法示例:

s[0] = "x"   # 错误!字符串不支持原地修改

5. 栈 stack 的简洁实现

Python 官方推荐直接用列表(list)来实现栈,因为列表的 append()pop() 方法在尾部操作的时间复杂度均为 O(1),完全满足栈的“后进先出”需求,代码也最为简洁直观。

操作API
入栈(压入元素)append(x)
出栈(弹出顶部元素)pop()
stack = []

stack.append(1)
stack.append(2)

stack.pop()   # 返回 2,栈变为 [1]

6. 队列 queue 的高效实现

如果使用列表来模拟队列,从头部执行 pop(0) 操作的效率非常低下,因为所有剩余元素都需要向前移动。因此在实际开发中,队列的首选实现是 collections 模块下的 deque(双端队列),它从两端进行添加/删除操作的时间复杂度均为 O(1)。

操作API
入队(尾部添加)append(x)
出队(头部移除)popleft()
from collections import deque

q = deque()

q.append(1)
q.append(2)

q.popleft()   # 返回 1,队列变为 deque([2])

最常用记忆版:Python 添加与删除 API 速查表

最后,将最核心、最常用的添加与删除 API 浓缩为一张速查表。编写代码时如果忘记了具体方法,直接翻阅本页即可快速找到答案。

数据类型添加方法删除方法
listappend() / insert() / extend()pop() / remove()
dictmp[key] = valuepop(key) / del mp[key]
setadd() / update()discard() / remove()
stack(基于 list)append()pop()
queue(基于 deque)append()popleft()
来源:https://www.jb51.net/python/365997ufu.htm
上一篇Python批量调整Excel格式并排版导出PDF的几种方案 下一篇Debian系统中Go语言版本更新实用策略与步骤详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
详解如何使用Apache服务器进行防盗链配置步骤
编程语言 · 2026-06-30

详解如何使用Apache服务器进行防盗链配置步骤

Apache使用mod_rewrite模块实现图片防盗链,通过 htaccess文件配置Rewrite规则,检查HTTP_REFERER来源,若非本站域名且来源不为空,则对jpg等常见图片格式返回403禁止访问。此方法能有效阻止大多数盗链行为。

Filebeat日志转发实现步骤详解
编程语言 · 2026-06-30

Filebeat日志转发实现步骤详解

Filebeat通过配置输入源读取日志,输出目标转发至Elasticsearch或Logstash。安装后编辑filebeat yml文件,指定日志路径和输出地址。支持直接转发或经Logstash处理。通过systemctl启动并验证数据到达,可选SSL加密和多行日志合并配置。

手把手教你如何在CentOS上使用PhpStorm构建项目的详细步骤
编程语言 · 2026-06-30

手把手教你如何在CentOS上使用PhpStorm构建项目的详细步骤

在CentOS上使用PHPStorm构建项目需先准备环境:安装Java、PHP及扩展、Nginx、MariaDB并开放端口。然后安装配置PHPStorm,设置SSH解释器与Web服务器映射。导入或创建项目后安装Composer依赖,调整php ini。配置SFTP部署并同步文件,最后设置Xdebug进行调试运行。

CentOS下GitLab集成其他工具的详细配置方法与完整指南
编程语言 · 2026-06-30

CentOS下GitLab集成其他工具的详细配置方法与完整指南

在CentOS平台中,GitLab通过Webhooks、API与CI CD配置,深度集成Jenkins、SonarQube、Docker及Slack,构建代码托管、自动构建、质量检查与协作通知的自动化链路,覆盖开发、测试、部署全流程,实现从提交到上线的自动化,大幅提升团队效率与交付质量,推动开发运维一体化。

CentOS设置Node.js定时任务的方法
编程语言 · 2026-06-30

CentOS设置Node.js定时任务的方法

在CentOS上为Node js应用设置定时任务常用两种方案:systemd适合长期运行服务,需创建服务文件并配置开机自启;cron更灵活,适合定期唤醒任务,通过编辑crontab添加时间计划和执行命令。两种方法均需指定Node js路径和应用入口。