Python - 删除设置项


Python 的 set 类提供了不同的方法来从 set 对象中删除一项或多项。

删除()方法

如果给定的项目存在于集合中,remove() 方法会从集合中删除给定的项目。但是,如果它不存在,则会引发 KeyError。

句法

set.remove(obj)

参数

  • obj - 一个不可变的对象

例子

lang1 = {"C", "C++", "Java", "Python"}
print ("Set before removing: ", lang1)
lang1.remove("Java")
print ("Set after removing: ", lang1)
lang1.remove("PHP")

它将产生以下输出-

Set before removing: {'C', 'C++', 'Python', 'Java'}
Set after removing: {'C', 'C++', 'Python'}
   lang1.remove("PHP")
KeyError: 'PHP'

丢弃()方法

set类中的discard()方法与remove()方法类似。唯一的区别是,即使要删除的对象尚未存在于集合中,它也不会引发错误。

句法

set.discard(obj)

参数

  • obj - 一个不可变的对象

例子

lang1 = {"C", "C++", "Java", "Python"}
print ("Set before discarding C++: ", lang1)
lang1.discard("C++")
print ("Set after discarding C++: ", lang1)
print ("Set before discarding PHP: ", lang1)
lang1.discard("PHP")
print ("Set after discarding PHP: ", lang1)

它将产生以下输出-

Set before discarding C++: {'Java', 'C++', 'Python', 'C'}
Set after discarding C++: {'Java', 'Python', 'C'}
Set before discarding PHP: {'Java', 'Python', 'C'}
Set after discarding PHP: {'Java', 'Python', 'C'}

pop() 方法

set 类中的 pop() 方法从 set 集合中删除任意项目。该方法返回删除的项目。从空集中弹出会导致 KeyError。

句法

obj = set.pop()

返回值

pop() 方法返回从集合中删除的对象。

例子

lang1 = {"C", "C++"}
print ("Set before popping: ", lang1)
obj = lang1.pop()
print ("object popped: ", obj)
print ("Set after popping: ", lang1)
obj = lang1.pop()
obj = lang1.pop()

它将产生以下输出-

Set before popping: {'C++', 'C'}
object popped: C++
Set after popping: {'C'}
Traceback (most recent call last):
   obj = lang1.pop()
         ^^^^^^^^^^^
KeyError: 'pop from an empty set'

第三次调用 pop() 时,集合为空,因此引发 KeyError。

清除()方法

set 类中的clear() 方法删除集合对象中的所有项目,留下一个空集合。

句法

set.clear()

例子

lang1 = {"C", "C++", "Java", "Python"}
print (lang1)
print ("After clear() method")
lang1.clear()
print (lang1)

它将产生以下输出-

{'Java', 'C++', 'Python', 'C'}
After clear() method
set()

Difference_update() 方法

set 类中的 Difference_update() 方法通过删除其自身与作为参数给出的另一个集合之间的公共项来更新集合。

句法

set.difference_update(obj)

参数

  • obj - 一个集合对象

例子

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
print ("s1 before running difference_update: ", s1)
s1.difference_update(s2)
print ("s1 after running difference_update: ", s1)

它将产生以下输出-

s1 before running difference_update: {1, 2, 3, 4, 5}
s1 after running difference_update: {1, 2, 3}
set()

Difference() 方法

Difference() 方法与 Difference_update() 方法类似,不同之处在于它返回一个新的集合对象,其中包含两个现有集合的差异。

句法

set.difference(obj)

参数

  • obj - 一个集合对象

返回值

Difference() 方法返回一个新集合,其中包含删除 obj 中的项目后剩余的项目。

例子

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
print ("s1: ", s1, "s2: ", s2)
s3 = s1.difference(s2)
print ("s3 = s1-s2: ", s3)

它将产生以下输出-

s1: {1, 2, 3, 4, 5} s2: {4, 5, 6, 7, 8}
s3 = s1-s2: {1, 2, 3}

intersection_update() 方法

作为 intersection_update() 方法的结果,集合对象仅保留那些本身和作为参数给出的其他集合对象共同的项目。

句法

set.intersection_update(obj)

参数

  • obj - 一个集合对象

返回值

Intersection_update() 方法会删除不常见的项,只保留自身和 obj 共有的项。

例子

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
print ("s1: ", s1, "s2: ", s2)
s1.intersection_update(s2)
print ("a1 after intersection: ", s1)

它将产生以下输出-

s1: {1, 2, 3, 4, 5} s2: {4, 5, 6, 7, 8}
s1 after intersection: {4, 5}

交集()方法

set 类中的 intersection() 方法与它的 junction_update() 方法类似,不同之处在于它返回一个新的 set 对象,该对象由现有集合共有的项组成。

句法

set.intersection(obj)

参数

  • obj - 一个集合对象

返回值

交集()方法返回一个集合对象,仅保留其本身和obj共有的那些项。

例子

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
print ("s1: ", s1, "s2: ", s2)
s3 = s1.intersection(s2)
print ("s3 = s1 & s2: ", s3)

它将产生以下输出-

s1: {1, 2, 3, 4, 5} s2: {4, 5, 6, 7, 8}
s3 = s1 & s2: {4, 5}

symmetry_difference_update() 方法

两个集合之间的对称差异是所有不常见元素的集合,拒绝常见元素。symmetry_difference_update() 方法使用自身与作为参数给出的集合之间的对称差异来更新集合。

句法

set.symmetric_difference_update(obj)

参数

  • obj - 一个集合对象

例子

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
print ("s1: ", s1, "s2: ", s2)
s1.symmetric_difference_update(s2)
print ("s1 after running symmetric difference ", s1)

它将产生以下输出-

s1: {1, 2, 3, 4, 5} s2: {4, 5, 6, 7, 8}
s1 after running symmetric difference {1, 2, 3, 6, 7, 8}

symmetry_difference() 方法

set 类中的 symmetry_difference() 方法与 symmetry_difference_update() 方法类似,不同之处在于它返回一个新的 set 对象,该对象包含两个集合中除公共项之外的所有项。

句法

set.symmetric_difference(obj)

参数

  • obj - 一个集合对象

返回值

symmetry_difference() 方法返回一个新集合,其中仅包含两个集合对象之间不常见的项目。

例子

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
print ("s1: ", s1, "s2: ", s2)
s3 = s1.symmetric_difference(s2)
print ("s1 = s1^s2 ", s3)

它将产生以下输出-

s1: {1, 2, 3, 4, 5} s2: {4, 5, 6, 7, 8}
s1 = s1^s2 {1, 2, 3, 6, 7, 8}