Python 删除集合项
Python的集合类提供了不同的方法来从集合对象中移除一个或多个项。
remove()方法
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'
discard() 方法
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()方法
pop() 方法在集合类中从集合中删除一个任意的元素。该方法返回被删除的元素。从空集合中弹出元素会导致 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。
clear()方法
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() 方法
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}
intersection() 方法
set 类中的 intersection() 方法类似于其 intersection_update() 方法,但它返回一个由已存在集合中共有项组成的新的集合对象。
语法
set.intersection(obj)
参数
- obj - 一个集合对象
返回值
intersection() 方法返回一个集合对象,仅保留在自身和 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)
它将产生以下输出
output −
s1: {1, 2, 3, 4, 5} s2: {4, 5, 6, 7, 8}
s3 = s1 & s2: {4, 5}
symmetric_difference_update() 方法
两个集合之间的对称差是所有不同的元素的集合,排除公共元素。symmetric_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}
symmetric_difference() 方法
set 类中的 symmetric_difference() 方法与 symmetric_difference_update() 方法类似,唯一的区别是 symmetric_difference() 方法返回一个新的集合对象,该对象包含两个集合中所有不共有的元素。
语法
set.symmetric_difference(obj)
参数
- obj − 一个集合对象
返回值
symmetric_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}