Python 集合 remove()函数使用详解,删除集合中的元素,删除多个元素

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:小白零基础《Python入门到精通》

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

猜你喜欢

转载自blog.csdn.net/wangyuxiang946/article/details/131864722