「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:小白零基础《Python入门到精通》
remove函数使用详解
- 1、删除多个元素
- 2、删除不存在的元素会报错
- 3、删除的元素可以是任意类型
- 4、remove()和discard()的区别?
remove() 可以「删除」集合中的指定「元素」
语法
set.remove( element )
参数
- element :(必选)需要删除的元素
返回值
- None,没有返回值,只修改原数组。
实例:删除集合中的指定元素
set1 = {1, 2, 3, 4, 5}
set1.remove(2)
print(set1)
输出:
{1, 3, 4, 5}
从伪源码(Python的内置函数看不到源码,只能看到函数的描述)中可以看到, remove() 可以「删除」一个元素;但这个元素必须「存在」,不存在就会报错 KeyError
1、删除多个元素
remove() 只接收「一个参数」,这意味着一次只能删除「一个元素」;删除多个元素会报错 TypeError: remove() takes exactly one argument
set1.remove(1, 2)
不过,我们可以配合「循环」,删除集合中的“小集合”
set1 = {1, 2, 3, 4, 5, 6}
set2 = {1, 2, 3}
for i in set2:
set1.remove(i)
print(set1)
输出:
{4, 5, 6}
2、删除不存在的元素会报错
remove() 删除集合中「不存在」的元素时,会报错 KeyError
set1 = {1, 2, 3, 4, 5}
set1.remove(6)
输出:
3、删除的元素可以是任意类型
remove() 删除的元素可以是「任意类型」,前提是集合可以存储这种类型,比如 整形、字符串、元组。
set1 = {1, 'str', (1, 2)}
set1.remove(1)
set1.remove('str')
set1.remove((1, 2))
print(set1)
输出:
set()
4、remove()和discard()的区别?
remove() 和 discard() 用法相同,都可以删除集合中的指定元素,但 remove() 删除不存在的元素会报错,而 discard() 不会报错。
不确定集合中是否存在该元素时,使用 discard()
set1 = {1, 2, 3}
set1.discard(9)
print(set1)
输出:
{1, 2, 3}
确定集合中存在该元素时,使用 remove()
set1 = {1, 2, 3}
set1.remove(9)
print(set1)
输出:
Traceback (most recent call last):
File "C:\Users\dell\PycharmProjects\pythonProject1\test1.py", line 3, in <module>
set1.remove(9)
KeyError: 9