python基础心得笔记-集合

一、集合的定义
集合是python的内置数据结构,和列表、字典一样是一个可变序列。换句话说,集合是没有value的字典。人们通过hash(date)找到date的存储地址。
集合有花括号表示,实例如下:
s={‘python’,‘数据’,90}
特性:

  1. 无序性
  2. 不允许存在重复元素

二、集合的创建

  1. 使用花括号{}创建//不能使用花括号建立空集合
s={'python','数据',90}
  1. 使用内置函数set()创建
s1=set('python')
s2=set()
s3=set((10,20,30,40))#元组元组转集合
s4=set([10,20,30,40])#列表元组转集合
s4=set({10,20,30,40})#字典元组转集合

三、集合的常见操作

  1. 集合元素判断是否存在(in和not in)
s={10,20,30,40,50}
print(10 in s)
print(10 not in s)
  1. 集合元素的增加
    实现集合元素的增加有两个方法:add()可实现一次添加一个元素,update()可实现一次添加至少一个元素。
s={10,20,30,40,50}
s.add(90)
print(s)
s.update([60,70,80,90])
print(s)
  1. 集合元素的删除
    实现集合元素的增加有四个方法:remove()可实现一次删除一个指定元素,如果指定元素不存在抛出keyError;discard()可实现一次删除一个指定元素,如果指定元素不存在不抛出异常;pop()可实现一次只删除一个任意元素;clear()可清空集合。
s={10,20,30,40,50,60,70,80,90}
s.remove(80)
s.discard(200)#指定元素不存在不抛出异常
s.pop()
s.clear()

四、集合间的关系

  1. 两个集合是否相等(==和!=)
s1={30,10,20}
s2={10,20,30}
print(s1==s2)

  1. 一个集合是否是另一个集合的子集(issubset)
s1={10,20,30,40,50,60}
s2={10,20,30,40}
s3={10,20,30}
print(s2.issubset(s1))
print(s3.issubset(s2))
  1. 一个集合是否是另一个集合的超集(issuperset)
s1={10,20,30,40,50,60}
s2={10,20,30,40}
s3={10,20,90}
print(s1.issuperset(s2))
print(s2.issuperset(s3))
  1. 两个集合是否没有交集(isdisjoint)
    没有交集返回true。
s1={10,20,30,40,50,60}
s2={10,20,30,40,80,90}
print(s1.isdisjoint(s2))

五、集合的数据操作

  1. 集合的交集
    两个集合的交集就算两个集合相交的部分,在python中通过&和方法intersection()表示,如图:
    在这里插入图片描述
    实例如下:
s1={10,20,30,40,50,60}
s2={10,20,30,40,80,90}
s3=s1&s2
s4=s1.intersection(s2)
  1. 集合的并集
    两个集合的并集包括两个集合所有的元素,在python中通过|和方法union()表示,如图:
    在这里插入图片描述
    实例如下:
s1={10,20,30,40,50,60}
s2={10,20,30,40,80,90}
s3=s1|s2
s4=s1.union(s2)
  1. 集合的差集
    集合的差集就是集合A减去集合B,就相当于集合A减去集合A和B的交集,在python中通过-和方法difference()表示,如图:
    在这里插入图片描述
    实例如下:
s1={10,20,30,40,50,60}
s2={10,20,30,40,80,90}
s3=s1-s2
s4=s1.difference(s2)
  1. 集合的对称差集
    集合的对称差集就是集合A与集合B中所有不属于A∩B的元素的集合,在python中通过^和方法symmetric_difference()表示,如图:
    在这里插入图片描述

实例如下:

s1={10,20,30,40,50,60}
s2={10,20,30,40,80,90}
s3=s1^s2
s4=s1.symmetric_difference(s2)

笔记心得来源于视频——马士兵Python基础版2020年全新教程和www.runoob.com网页

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值