Python基础-集合

集合

什么是集合

  • 集合(set)是一个无序的不重复元素序列
  • 常用来对两个列表进行交并差的处理
  • 集合与列表一样,支持所有的数据类型
  • 可以使用set函数或者带值的{}进行定义,不能使用空的{}进行定义

{"name",1,"age"}

列表与集合的区别

  • 集合是无序的,无索引的,不可重复的,用于数据的交集并集差集的获取
  • 列表是有序的,有索引的,可重复的,用于数据的使用

集合的创建

  • 可以使用set函数或者带值的{}进行定义,不能使用空的{}进行定义
  • 集合可以添加所有的不可变类型的数据
  • 可以使用集合来进行去重
a_set = set()  # 空集合
b_set = set([1,2,3])  # 传入一个列表或者元组
b_set = {1,2,3}  # 传入一个元组
c_set = {}  # 此处为定义一个字典

集合的增删改

add()函数(添加一个元素)

  • 用于向集合中添加一个元素
  • 用法:

set.add(item)

  • 参数:

item 要添加到集合中的元素
无返回值

  • 注意:
    • 如果集合中已经存在该元素,则不执行
    • 集合是无序的,添加的元素不一定添加在最后

update()函数(加入一个新的集合)

  • 用法:

set.update(iterable)

  • 参数:

iterable 新的集合,列表,字符串
无返回值

  • 注意:
    • 如果原集合中已经存在新集合的元素,则新集合中的元素不会被添加

remove()函数(将集合中的元素删除)

  • 用法:

set.remove(item)

  • 参数:

item 当前集合中的一个元素(是元素不是索引)
无返回值

  • 注意:
    • 如果集合中不存在这个元素,则会直接报错

clear()函数(清空当前集合中的所有元素)

  • 用法:

set.clear()

  • 参数:

无返回值

  • 注意:
    • 会删除集合中的所有元素

del()函数(删除集合)

  • 用法:

del set

  • 参数:

无返回值

  • 注意:
    • 集合没有索引,无法通过del进行索引删除

集合要点

  1. 集合无法通过索引获取元素
  2. 集合无获取元素的任何方法
  3. 集合只是用来处理列表或元组的一种临时类型,不适合存储与传输

集合的差集

什么是差集
  • a,b两个集合,由所有属于a且不属于B的元素组成的集合叫做a与b的差集
differnce()函数(返回集合的差集)
  • 用法:

a_set.differnce(b_set)

  • 参数:

a_set 第一个合集
b_set 第二个集合,需要对比的集合
返回值:返回原始合集于对比集合的差集(返回a_set与b_set的差集)

  • 注意:
    • 返回的集合元素包含在第一个集合中,但不包含在第二个集合中

集合的交集

什么是交集
  • a,b两个集合分别拥有相同的元素集,称为a与b的交集
intersection()函数(返回两个或者更多集合中都包含的元素,交集)
  • 用法:

a_set.intersection(b_set...)

  • 参数:

b_set.... 与当前集合对比的1个或者多个集合

  • 注意:
    • 需要满足a中的元素在函数参数内的所有集合中都存在,才会被返回

集合的并集

什么是并集
  • a,b两个集合中所有的元素(去除重复元素)即为a与b的并集
union()函数(返回多个集合的并集)
  • 用法:

a_set.union(b_set...)

  • 参数:

b_set.... 与当前集合对比的1个或者多个集合

  • 注意:
    • 返回包含了所有集合的元素,重复的元素只会出现一次

isdisjoint()函数(判断两个集合是否包含相同的元素)

  • 用法:

a_set.isdisjoint(b_set)

  • 参数:

b_set 与当前集合用来判断的集合
返回一个布尔值True或者False

  • 注意:
    • 如果两个集合没有相同的元素返回True,如果有相同的元素返回False

运算符和集合函数的差异

函数运算符集合类型备注
intersection&交集我有你也有
union``并集
differnce-差集我的减掉你有的
  • 使用以上函数是,函数的参数可以是集合,列表或者是字典,字符串
  • 但是使用运算符时,左右两边必须都是集合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值