Python之集合

一 集合的特性及应用场景

数学中的集合有三个特性:确定性,无异性和无序性。python中的集合亦是如此,确定性指的是一个元素要么属于这个集合,要么不属于这个集合,能够确定的知道;无异性指的是集合中的每一个元素都是唯一的,不会存在相同的元素;无序性指的是集合中的元素是没有先后顺序之分的,位置是随意的。
基于集合的无异性的特性,python中的集合常常用于数据去重操作。

二 集合的创建

集合的创建如下

{value1,value2,...value n}#大括号包含各个元素
set()#创建空集合

需要注意的是,空集合的创建是set(),而非{},{}是创建空字典。
如下

s = {1, 2}
s1 = set()
s2 = {}
print(type(s))
print(type(s1))
print(type(s2))
>>>
<class 'set'>
<class 'set'>
<class 'dict'>

三 集合的添加

添加单个元素:s.add()

s = {1, 2, 3}
s.add(4)
s.add('a')
print(s)
>>>
{1, 2, 3, 4, 'a'}

合并集合(添加多个元素):s.update()

s.update({'python', 'MySql'})
print(s)
>>>
{1, 2, 3, 4, 'a', 'MySql', 'python'}

四 集合的删除

删除指定元素:s.remove() 不存在会报错s.discard() 不存在不会报错

s = {1, 2, 3, 4, 'a', 'MySql', 'python'}
s.discard(6)
print(s)
s.remove(6)
print(s)
Traceback (most recent call last):
  File "C:/Users/admin/python-learning/python学习文件/python基础/CSDN.py", line 11, in <module>
    s.remove(6)
KeyError: 6
{1, 2, 3, 4, 'MySql', 'python', 'a'}

随机删除一个元素:s.pop()

s1 = {'d', 'v', 3, 4, 'a', 'MySql', 'python'}
for i in range(5):
    s1.pop()
    print(s1)
>>>
{4, 'MySql', 'v', 'python', 'd', 'a'}
{'MySql', 'v', 'python', 'd', 'a'}
{'v', 'python', 'd', 'a'}
{'python', 'd', 'a'}
{'d', 'a'}

清空集合:s.clear()

s1 = {'d', 'v', 3, 4, 'a', 'MySql', 'python'}
s1.clear()
print(s1)
>>>
set()

五 集合的交集,并集和差

1. 集合的交集:s.intersection()或者 &
s1 = {1, 2, 3, 4}
s2 = {4, 5, 6}
print(s1.intersection(s2))
print(s1 & s2)
>>>
{4}
{4}
2. 集合的并集:s.union()或者 |
s1 = {1, 2, 3, 4}
s2 = {4, 5, 6}
print(s1.union(s2))
print(s1 | s2)
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6}
3. 集合的差:s.difference()
s1 = {1, 2, 3, 4}
s2 = {4, 5, 6}
print(s1.difference(s2))
print(s2.difference(s1))
>>>
{1, 2, 3}
{5, 6}
4. 返回两个集合中不重复的元素:s.symmetric_difference()
s1 = {1, 2, 3, 4}
s2 = {4, 5, 6}
print(s1.symmetric_difference(s2))
{1, 2, 3, 5, 6}

注意,这里返回的是两个集合中不重复的元素,跟并集不同,并集包括重复的元素。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值