python-集合(set)的使用

本文介绍了Python中的集合(set)数据结构,包括如何创建集合、添加和删除元素、合并集合以及进行交集、并集、差集等集合运算。集合特点是元素唯一且无序,常用于数据去重和特定的数学运算。

1、集合的简介

  集合这个概念在高等数学中遇到过,这里也是一样的概念。它依然有以下几个特点:

  • 元素不会重复
  • 只能存储不可变对象
  • 集合中的元素是没有顺序的

  这里我们可以看到它和列表的区别了,这也是它的一个特点,当我们希望列表中的元素都是唯一的时候,可以把这个列表转换成一个集合。

2、集合的创建

2.1 使用{}创建

  这里和字典的创建比较相似,但是这里注意只能创建一个非空的集合,因为如果只打一个{},就默认识别成字典了。

In [1]: set={1,1,2,2,3}

In [2]: set
Out[2]: {1, 2, 3}

2.2 使用set()函数创建

In [1]: s=set()

In [2]: type(s)
Out[2]: set

  这个函数同样可以用于数据类型的转换。字典转换过来以后只有key,没有value。

3、集合元素的修改

3.1 增加元素

使用add()方法:

In [4]: set={1,2,3}

In [5]: set
Out[5]: {1, 2, 3}

In [6]: set.add(4)

In [7]: set
Out[7]: {1, 2, 3, 4}

3.2 删除元素

3.2.1 pop()

  随机删除集合中一个元素(一般是最后一个元素)并将这个元素返回

In [7]: set
Out[7]: {1, 2, 3, 4}

In [8]: s=set.pop()

In [9]: s
Out[9]: 1

尴尬

3.2.2 remove()

根据参数删除指定元素

In [11]: set={1,2,3,4,5,0}

In [12]: set
Out[12]: {0, 1, 2, 3, 4, 5}

In [13]: set.remove(0)

In [14]: set
Out[14]: {1, 2, 3, 4, 5}

3.3 合并集合

update()
将一个集合中的元素添加到当前集合中

In [15]: set1={1,2,3}

In [16]: set2={3,4,5}

In [17]: set1.update(set2)

In [18]: set1
Out[18]: {1, 2, 3, 4, 5}

In [19]: set2
Out[19]: {3, 4, 5}

3.5 清空集合

In [20]: set1
Out[20]: {1, 2, 3, 4, 5}

In [21]: set1.clear()

In [22]: set1
Out[22]: set()

4、集合的运算

4.1 交集运算&

n [23]: set1={1,2,3}

In [24]: set2={3,4,5}

In [25]: set1&set2
Out[25]: {3}

4.2 并集运算|

In [26]: set1|set2
Out[26]: {1, 2, 3, 4, 5}

In [27]: set1
Out[27]: {1, 2, 3}

In [28]: set2
Out[28]: {3, 4, 5}

和update()的结果一样的

4.3 差集运算-

In [29]: set1
Out[29]: {1, 2, 3}

In [30]: set2
Out[30]: {3, 4, 5}

In [31]: set1-set2
Out[31]: {1, 2}

In [32]: set2-set1
Out[32]: {4, 5}

4.4 亦或集运算^

In [29]: set1
Out[29]: {1, 2, 3}

In [30]: set2
Out[30]: {3, 4, 5}

In [31]: set1-set2
Out[31]: {1, 2}

In [32]: set2-set1
Out[32]: {4, 5}

In [33]: set1^set2
Out[33]: {1, 2, 4, 5}

其实就是两个差集的并集

4.5 其他运算

<=检查一个集合是不是另一个集合的子集
<检查一个集合是不是另一个集合的真子集
>=检查一个集合是不是另一个集合的超集
>检查一个集合是不是另一个集合的真超集
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值