网淘巴来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Python set集合操作

2021-05-16 新闻来源:网淘巴 围观:499
''

Python set 集合最常用的操作是向集合中添加、删除元素,以及集合之间做交集、并集、差集等运算,本节将一一讲解这些操作的具体实现。

向 set 集合中添加元素

set 集合中添加元素,可以使用 set 类型提供的 add() 方法实现,该方法的语法格式为:

setname.add(element)

其中,setname 表示要添加元素的集合,element 表示要添加的元素内容。

需要注意的是,使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True 和 False)值,不能添加列表、字典、集合这类可变的数据,否则 Python 解释器会报 TypeError 错误。例如:

  1. a = {1,2,3}
  2. a.add((1,2))
  3. print(a)
  4. a.add([1,2])
  5. print(a)

运行结果为:

{(1, 2), 1, 2, 3}
Traceback (most recent call last):
  File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
    a.add([1,2])
TypeError: unhashable type: 'list'

从set集合中删除元素

删除现有 set 集合中的指定元素,可以使用 remove() 方法,该方法的语法格式如下:

setname.remove(element)

使用此方法删除集合中元素,需要注意的是,如果被删除元素本就不包含在集合中,则此方法会抛出 KeyError 错误,例如:

  1. a = {1,2,3}
  2. a.remove(1)
  3. print(a)
  4. a.remove(1)
  5. print(a)

运行结果为:

{2, 3}
Traceback (most recent call last):
  File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
    a.remove(1)
KeyError: 1

上面程序中,由于集合中的元素 1 已被删除,因此当再次尝试使用 remove() 方法删除时,会引发 KeyError 错误。

如果我们不想在删除失败时令解释器提示 KeyError 错误,还可以使用 discard() 方法,此方法和 remove() 方法的用法完全相同,唯一的区别就是,当删除集合中元素失败时,此方法不会抛出任何错误。

例如:

  1. a = {1,2,3}
  2. a.remove(1)
  3. print(a)
  4. a.discard(1)
  5. print(a)

运行结果为:

{2, 3}
{2, 3}

Python set集合做交集、并集、差集运算

集合最常做的操作就是进行交集、并集、差集以及对称差集运算,首先有必要给大家普及一下各个运算的含义。



图 1 集合示意图


图 1 中,有 2 个集合,分别为 set1={1,2,3} 和 set2={3,4,5},它们既有相同的元素,也有不同的元素。以这两个集合为例,分别做不同运算的结果如表 1 所示。

表 1 Python set集合运算
运算操作Python运算符含义例子
交集&取两集合公共的元素>>> set1 & set2
{3}
并集|取两集合全部的元素>>> set1 | set2
{1,2,3,4,5}
差集-取一个集合中另一集合没有的元素>>> set1 - set2
{1,2}
>>> set2 - set1
{4,5}
对称差集^取集合 A 和 B 中不属于 A&B 的元素>>> set1 ^ set2
{1,2,4,5}
免责申明
一、网淘巴提供的资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱:jjq_hn@wtao8.com ,我们会在看到邮件的第一时间内为您处理。二、网友通过wtao8.com途径发表的一切信息,本站有权在本网站范围内引用、发布、转载用户在本站发布的内容。本站对于用户发布的内容所引发的版权、署名权的异议、纠纷不承担任何责任。传统媒体转载须事先与原作者和本站联系。提交者发言纯属个人行为,与本网站立场无关。
打赏

相关文章

关于已赞助未发注册码声明

目前有一位朋友已赞助了,但未将软件软件名称、注册名和注册码发到我的邮箱,请将信息发至我的邮箱,谢谢。