set集合判断集合中是否有无元素_集合 (Set) | 一山不容二虎的 Python 数据类型

点击上方"可乐python说"关注公众号,点击右上角 "..." 选择"设为星标"第一时间获取最新分享! 812b9b47360386e0886ca9342354ddee.png

前言

Hi,大家好,我是可乐, 今天介绍 Python 集合 的相关知识,并附上相应的案例代码,便于学习、吸收。

集合简介

集合 (Set) 是 Python 中基本数据结构之一,与数学中的集合概念类似但又存在一定差异,集合中的元素唯一、且无序存储。 集合使用大括号 - {} 包裹,元素之间使用逗号 - 分隔,集合中的元素可以是字符串、数字、列表等其他任何不可变数据类型。 集合不支持索引、嵌套,也没有切片操作,但支持更新、删除等操作,并且可进行 并集交集差集 等常见的集合操作,下面我们通过案例来学习。

集合初体验

1、使用 set() 方法定义一个空集合。
>>> def_set = set()
2、使用 {}   定义一个非空集合 。
# 之前介绍过 {} 用于定义空字典
3、集合特性之元素唯一
>>> def_set = {
4、集合特性之元素无序存储
>>> def_set = set([

5、集合特性之不可通过索引获取元素,但可通过 for 循环获取。

>>> def_set = {
6、使用 innot in 判断元素是否在集合中,是则返回 True , 否则返回 False
>>> def_set = (

集合基础方法

集合基础方法可参照下表:
方法说明

len(set)

计算集合元素数量

max(set)

返回集合中最大的元素

min(set)

返回集合中最小的元素

type(set)

查看数据类型

set(iterable)

将可迭代对象转换为集合

1、使用 len 方法计算集合数量。
>>> def_set = {
2、使用 max 方法,返回集合中最大的元素。
>>> def_set = {
3、使用 min 方法,返回集合中最小的元素。
>>> def_set = {
4、使用 type 方法查看数据类型。
>>> def_set = {
5、使用 set 方法将可迭代对象转换为集合。
>>> def_set = set([

集合内置方法

Python 中的 set 类提供了集合操作相关的内置方法,集合中还提供了部分操作符号与之对应,下面按照类中方法定义的顺序演示。 部分集合内置函数与集合操作符对于关系可参照下表:
方法符号说明

difference

-

计算差集

intersection

&

计算交集

issubset

<

子集判断

symmetric_difference

^

计算对称差集

union

|

计算并集

1、使用 add  方法,给集合添加元素,若元素已存在,不做任何操作。
# 使用语法:set.add(obj)
2、使用 clear 方法清空集合。
# 使用语法:set.clear()
3、使用 copy 方法 浅拷贝 复制一个新集合。
# 使用语法:set.copy()
4、使用 difference 方法,计算两个集合的差集,返回一个新集合,与集合运算符 - 效果相同。
# 使用语法:set1.difference(set2)
5、使用 difference_update 方法,计算两个集合的差集,并直接从 def_set1 中移除两个集合都存在的元素。
# 使用语法:set1.difference_update(set2)
6、使用 discard 方法,删除集合中指定的元素,元素不存在也不会报错。
# 使用语法:set.discard(obj)
7、使用 intersection 方法,计算多个集合的交集,与集合运算符 & 效果相同。
# 使用语法:set1.intersection(set2,set3,...)
8、使用 intersection_update 方法,计算多个集合的交集,并直接从 def_set1 中删除所有集合中都不重叠的元素。
# 使用语法:set1.intersection_update(set2,set3,...)
9、使用 isdisjoint 方法,判断两个集合是否不包含相同的元素,是则返回 False ,否则返回 True
# 使用语法:set1.isdisjoint(set2)
10、使用 issubset 方法,判断 set1 是否是 set2 的子集,是则返回 True ,否则返回 False
# 使用语法:set1.issubset(set2)
11、使用 issuperset 方法,判断 set1 是否是 set2 的 超集 ,可理解为父集,是则返回 True ,否则返回 False
# 使用语法:set1.issuperset(set2)
12、使用 pop 方法,删除并返回集合中任意元素。
# 使用语法:set.pop()
13、使用 remove 方法,删除集合中某一元素。
# 使用语法:set.remove(obj)
14、使用 symmetric_difference 方法,删除两个集合中相同的元素,再取并集,即 对称差集 ,与集合运算符 ^ 效果相同。
# 使用语法:set1.symmetric_difference(set2)
15、使用 symmetric_difference_update 方法,取两个集合的对称差值,并在set1 中删除两个集合中相同的元素 。
# 使用语法:set1.symmetric_difference_update(set2)
16、使用 union 方法,取多个集合的并集,与集合运算符 |  效果相同。
# 使用语法:set1.union(set2,set3,...)
17、使用 update 方法,添加新的元素或集合到当前集合中,重复的元素会被忽略。
# 使用语法:set1.update(set2)

集合应用

1、使用集合对字符串进行去重。
>>> def_str = 
2、使用集合对列表进行去重。
>>> def_list = [
3、使用集合对元组进行去重。
>>> def_tuple = (

总结

  1. Python 中的集合,因其元素唯一的特性,常用于数据的去重,当然,它也可用于数学集合的相关计算。

  2. 定义集合可使用  set() 方法,但不能使用 {} ,因为大括号定义的是一个空字典,集合的元素只能为不可变数据类型。

  3. 集合的内置方法中,部分有操作符与之对应,使用时可自行选择。

  4. 集合的内置方法中,有几组方法的效果需要做一下区分。

  • difference 与 difference_update,求差集

  • intersection 与 intersection_update,求交集

  • symmetric_difference 与 symmetric_difference_update,求对称差集

  • 以上几组方法的区别均在于,后者会直接操作原始集合

文中难免会出现一些描述不当之处(尽管我已反复检查多次),欢迎在留言区指正,也可分享集合相关的知识。

原创文章已全部更新至 Github:https://github.com/kelepython/kelepython

本文永久博客地址:https://kelepython.readthedocs.io/zh/latest/c01/c01_07.html

为了便于沟通交流,我已创建微信学习交流群,欢迎在后台回复 加群 加入我们。

历史文章推荐阅读一文搞定 Python 字符串操作(上)一文搞定 Python 字符串操作(下)Python 字符串,劳动节前夕加餐 Python 列表操作,节后大放送 Python 字典操作,母亲节加餐 元组(Tuple) | 不可改变的 Python 数据类型 扫码关注公众号 获取更多分享

32138c8e73e84a22565f85f6dc75a0b9.png

如果觉得还不错,点个"在看"鼓励一下!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值