discard

简介: 【9月更文挑战第28天】

在Python中,discard()remove() 都是集合(set)类型的方法,用于从集合中删除元素,但它们之间有一些关键的区别:

  1. remove() 方法

    • 如果指定的元素存在于集合中,remove() 方法会将其删除。
    • 如果指定的元素不存在于集合中,remove() 方法会抛出一个 KeyError 异常。
  2. discard() 方法

    • discard() 方法也会删除指定的元素,如果该元素存在于集合中。
    • 如果指定的元素不存在于集合中,discard() 方法什么也不做,并且不会抛出任何异常。

简而言之,remove() 方法在元素不存在时会引发错误,而 discard() 方法则不会。这使得 discard() 在处理可能不存在的元素时更加安全,因为你不需要编写额外的代码来处理 KeyError 异常。

示例代码

下面是 remove()discard() 方法的使用示例:

# 创建一个集合
my_set = {
   1, 2, 3, 4, 5}

# 使用 remove() 删除元素
try:
    my_set.remove(3)
    print("After remove(3):", my_set)
except KeyError:
    print("Element not found")

# 尝试删除不存在的元素
try:
    my_set.remove(6)
    print("After remove(6):", my_set)
except KeyError:
    print("Element not found")

# 使用 discard() 删除元素
my_set.discard(4)
print("After discard(4):", my_set)

# 尝试 discard() 删除不存在的元素,不会有任何反应
my_set.discard(6)
print("After discard(6):", my_set)

输出:

After remove(3): {1, 2, 4, 5}
Element not found
After discard(4): {1, 2, 5}
After discard(6): {1, 2, 5}
目录
相关文章
|
数据库管理 Ruby
Transaction recovery: lock conflict caught and ignored
Transaction recovery: lock conflict caught and ignored环境:RAC 4节点、oracle 11.2.0.4、redhat 5.9 64bit 问题描述: 1.
1843 0
|
3月前
|
监控 NoSQL Redis
Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.
Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.
|
12月前
|
开发工具 git
解决报错:Remove untracked files, stash or commit any changes, and try again
解决报错:Remove untracked files, stash or commit any changes, and try again
100 1
【异常】svn: E200009: Commit failed (details follow)/both sides of the move must be committed together的解决办法
svn: E200009: Commit failed (details follow)/both sides of the move must be committed together的解决办法
664 0
|
缓存 关系型数据库
PG的synchronous_commit
PG的synchronous_commit
222 0
|
物联网 Linux 开发者
Abort|学习笔记
快速学习 Abort
|
Web App开发 存储 前端开发
Why系列:如无必要, don't 使用delete
啥,你要给我讲啥, delete? 哈哈哈哈哈哈哈哈哈 这里大家可能要笑了,这不就一个操作符吗,还用单独来讲。 有这时间,还不如去看看react源码,vue源码。 我说:react源码会去看的,但是这个也很挺有意思的。
202 0
Why系列:如无必要, don't 使用delete
|
关系型数据库 Oracle Linux
[20180306]关于DEFERRED ROLLBACK2.txt
[20180306]关于DEFERRED ROLLBACK2.txt --//上午测试DEFERRED ROLLBACK针对表空间offline才有效,我测试回滚一定会写到DEFERRED ROLLBACK段.
993 0
|
Oracle 关系型数据库 测试技术
[20180306]关于DEFERRED ROLLBACK.txt
[20180306]关于DEFERRED ROLLBACK.txt --//在oracle数据库存在一种特殊的ROLLBACK段,叫DEFERRED ROLLBACK.
1075 0
|
Linux Shell 网络安全