十二、python中的集合及其相关操作

1、集合(set)的简介及创建

1、集合的简介

  1. 集合是一个可变的数据类型,但其中存储的元素必须为不可变(可哈希)数据类型;
  2. 集合无序
  3. 元素不可重复(如其中有重复元素,则在创建时会删除重复的元素,只保留重复元素中的一个)
  4. 集合的表示通过{}来进行
  5. python中集合不能嵌套,也不能嵌套列表等类型,原因如第一条所讲,集合的元素类型只能是不可变数据类型,如整数,浮点数,字符串,元组。

2、集合的创建(实例)
用两种方法分别创建名为set1和set2的集合
在这里插入图片描述
从上面例子可以看出,集合创建的方式有两种,一种是用“{}”创建,基本语法为{element1,...,elementn},另一种是用“set()”方法创建,基本语法为set({element1,...,elementn}),不过需要注意的是,空集合只能用set方法进行创建,不能直接用“{}”方法创建,因为直接用“{}”创建出来的是空字典;用set方法创建空集合的方法:set({})

2、集合相关的基本操作

1、往集合里面添加数据

  1. add()方法:往集合里面添加数据,位置为集合的末尾;基本语法为集合名.add(element)
    实例:
    在这里插入图片描述
  2. update()方法:有点类似于列表的extend()方法,将元素拆分为最小元素加入原集合
    实例:
    在这里插入图片描述

2、删除集合中的数据或者集合本身

  1. pop()方法:随机删除集合中的一个值,然后将其返回;基本语法为集合名.pop()
    实例:
    在这里插入图片描述
  2. remove()方法:删除集合中指定的元素,若该元素不存在,则报错;基本语法为集合名.remove(element)
    实例:
    在这里插入图片描述
  3. clear()方法:清空集合中的数据,基本语法集合名.clear()
    实例:
    在这里插入图片描述
  4. del语句:删除集合本身,基本语法为del 集合名
    实例:
    在这里插入图片描述

3、搜索集合中的数据
由于集合的无序性,搜索集合的数据时只能使用for循环来实现,具体的方法以一个实例来说明。
实例: 输出集合的所有元素
在这里插入图片描述

3、集合的运算

与列表等类型最大的不同之处在于,集合可以进行各种独有的运算,如交集、并集、补集等等。
1、求交集:即两个集合中都有的元素,求交集有两种方法

  1. 方法一:用intersection()函数,基本语法为集合名.intersection(集合名)
  2. 方法二:用“&”符,基本语法为集合名 & 集合名
  3. 实例:
    在这里插入图片描述

2、求并集:即将两个集合中所有的元素合为一个大的集合,这也有两种方法

  1. 方法一:用union()函数,基本语法为集合名.union(集合名)
  2. 方法二:用“|”符号,基本语法为集合名 | 集合名
  3. 实例:
    在这里插入图片描述

3、求反交集:即两个集合中各自独有的元素,同样有两种方法

  1. 方法一:用symmetric_difference()函数,基本语法为集合名.symmetric_difference(集合名)
  2. 方法二:用“^”符号,基本语法为集合名 ^ 集合名
  3. 实例:
    在这里插入图片描述

4、求差集:即某一个集合独有的元素,也有两种方法

  1. 方法一:用difference()函数,基本语法为集合名2.difference(集合名1)表示集合2中有的而集合1中没有的元素
  2. 方法二:用“-”符号,基本语法集合名1 - 集合名2表示集合1中有而集合2中没有的元素
  3. 实例:
    在这里插入图片描述

5、判断一个集合是否为另一个集合的子集,也有两种方法

  1. 方法一:用issubset()函数,基本语法为集合名1.issubset(集合名2)表示判断集合1是否为集合2的子集,返回值为bool类型
  2. 方法二:用“<”符号,基本语法为集合名1 < 集合名2表示判断集合1是否为集合2的子集,返回值为bool类型
  3. 实例:
    在这里插入图片描述

4、集合与其他类型数据之间的转换

1、集合的去重功能
由于集合具有去重的特性,所以可以把列表等其它类型转转为集合,从而达到去重的效果。
2、将其他数据类型转为集合的基本语法:set(其他类型的数据(如列表))
3、将集合转为列表:list(集合名)
4、将集合转为不可变的数据类型的基本语法:frozenset(集合名)
5、实例:
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值