15 difference()方法:返回集合的差集

文章目录

  • 15 difference()方法:返回集合的差集
    • 1.语法要点
    • 2.实操练习
      • 2.1参数为集合
      • 2.2参数为列表
      • 2.3 参数为元组
      • 2.4 参数为字典
      • 2.5 参数为字符串
      • 2.6 参数为可迭代对象
    • 3.综合练习
    • 4.课后总结

1.语法要点

difference()方法用于返回集合的差集。
作用和符号-取差集一样。

set_1.difference(set_2) 删除两个集合都有的元素,保留集合1特有的元素。
set_2.difference(set_1) 删除两个集合都有的元素,保留集合2特有的元素。
顺序很重要,谁在前就保留谁特有的元素。

difference 和符号-的作用一样,都是取差集。
不同点是:
符号-只能取集合之间的差集。
difference()方法可以取集合与可迭代对象之间的差集。

difference()方法的参数是可迭代对象:列表、元组、字典、集合、字符串。
difference()方法的参数不可以是整数、浮点数。

2.实操练习

2.1参数为集合

# 用{}新建3个集合
set_1 = {1, 2, 3}
set_2 = {5, 4, 3}
set_3 = {5, 1, 3}# 计算集合与集合的差集
print('集合1与集合2的差集:',set_1 - set_2)
print('集合1与集合2的差集:',set_1.difference(set_2),'\n')print('集合1与集合2、3的差集:',set_1 - set_2 - set_3)
print('集合1与集合2、3的差集:',set_1.difference(set_2, set_3))

【终端输出】

集合1与集合2的差集: {1, 2}
集合1与集合2的差集: {1, 2} 集合1与集合2、3的差集: {2}
集合1与集合2、3的差集: {2}

集合1与集合2都有的元素是3,集合1与集合2的差集以集合1为准,删除都有的元素3,保留集合1特有的元素1、2,因此集合1与集合2的差集为1,2。

集合1与集合2、3的差集先计算集合1与集合2的差集,结果为元素1、2。
然后计算与集合3的差集,元素1、2与集合3都有的元素是1,以集合1为准,删除都有的元素1,保留元素2,因此集合1与集合2、3的差集为2。

2.2参数为列表

# 用{}新建1个集合
set_1 = {1, 2, 3}
# 声明列表
list_1 = [1,2]# 计算集合与列表的差集
print('集合1与列表的差集:',set_1.difference(list_1))

【终端输出】

集合1与列表的差集: {3}

2.3 参数为元组

# 用{}新建1个集合
set_1 = {1, 2, 3}
# 声明元组
tuple_1 = (2,3)# 计算集合与元组的差集
print('集合1与元组的差集:',set_1.difference(tuple_1))

【终端输出】

集合1与元组的差集: {1}

2.4 参数为字典

# 用{}新建一个集合
set_1 = {3,4,5}# 用{}新建一个字典
dict_1 = {1:'姓名',2:'学号',3:'性别'
}# 计算集合与字典的差集
print(set_1.difference(dict_1))

【终端输出】

{4, 5}

2.5 参数为字符串

# 用{}新建一个集合
set_1 = {'1', '2', '3'}# 声明一个字符串
str_1 = '246'print('集合与字符串的差集:',set_1.difference(str_1))

【终端输出】

集合与字符串的差集: {'3', '1'}

2.6 参数为可迭代对象

# 用{}新建3个集合
set_1 = {1, 2, 8}
set_2 = {5, 4, 3}
set_3 = {5, 1, 3}# 声明列表
list_1 = [1,2]# 声明元组
tuple_1 = (2,3)# 用{}新建一个字典
dict_1 = {1:'姓名',2:'学号',3:'性别'
}# 声明一个字符串
str_1 = '246'print('计算集合与多个可迭代对象的差集:',set_1.difference(set_2, list_1, tuple_1, dict_1, str_1))

【终端输出】

计算集合与多个可迭代对象的差集: {8}

3.综合练习

'''
任务:自定义一个函数,获取两个列表的差集。
步骤1.用set方法将列表转换为集合;
步骤2.用difference方法计算2个集合的差集;
步骤3.用list函数将结果转换为列表。
'''
# 用def自定义一个函数
def difference (a,b ) :#用set方法将列表转换为集合;set_1 = set(a)set_2 = set(b)#用difference方法计算2个集合的差集;set_3 = set_1.difference(set_2) # 将得到的结果转换为列表return list(set_3)# 传入实参
# 相当于a = [1,2,3,4]
# 相当于b = [2,4,6]
print(difference( [1,2,3,4],   [2,4,6]) )

【终端输出】

[1, 3]

4.课后总结

Python 集合15 difference()方法:返回集合的差集相关推荐

  1. python中集合比大小方法_Python集合17个方法详解

    Python 中的集合类似于数学中的集合概念,它是一组无序.不可重复数据的组合.集合用{ ...}创建,某种程度上可以把集合看作是没有值的字典.集合是Python里面非常重要的数据类型,其中的方法总共 ...

  2. 【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )

    文章目录 一.使用 for 循环遍历集合 二.使用 each 方法遍历集合 三.集合的 each 方法返回值分析 四.完整代码示例 一.使用 for 循环遍历集合 使用 for 循环 , 遍历集合 , ...

  3. 【Groovy】集合遍历 ( 调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 | =~ 运算符等价于 contains 函数 | 代码示例 )

    文章目录 一.调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 二.代码示例 一.调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 集合的 every 方法 , 用于 ...

  4. 【Groovy】集合遍历 ( 使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 | 代码示例 )

    文章目录 一.使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 1.闭包中使用 == 作为 findAll 方法的查找匹配条件 2.闭包中使用 is 作为 findAll 方法的查找匹 ...

  5. 【Groovy】集合遍历 ( 使用集合的 find 方法查找集合元素 | 闭包中使用 == 作为查找匹配条件 | 闭包中使用 is 作为查找匹配条件 | 闭包使用 true 作为条件 | 代码示例 )

    文章目录 一.使用集合的 find 方法查找集合元素 1.闭包中使用 == 作为查找匹配条件 2.闭包中使用 is 作为查找匹配条件 3.闭包中使用 true 作为查找匹配条件 二.完整代码示例 一. ...

  6. 【转载】C#中List集合使用AddRange方法将一个集合加入到指定集合末尾

    C#编程开发过程中,List集合是时常使用到的集合对象,如果在List集合的操作中需要将1个List集合加入到另一个List集合的末尾,则可以使用List集合的AddRange方法来实现,AddRan ...

  7. Map集合使用get方法返回null抛出空指针异常问题

    Map集合使用get方法空指针异常问题 前言 1.Map里面只能存放对象,不能存放基本类型,例如int,需要使用Integer 2.Map集合取出时,如果变量声明了类型,会先进行拆箱,再进行转换. 空 ...

  8. Python 集合06 discard()方法—删除集合中的指定元素

    discard()方法-删除集合中的指定元素 文章目录 discard()方法-删除集合中的指定元素 1.语法要点 2.实操练习 (1)删除的元素在集合中 (2)删除集合中不存在的元素,discard ...

  9. Python set 的pop()方法 返回元素并不随机

    Python文档中对set的pop()方法描述: pop() 从集合中移除并返回任意一个元素. 如果集合为空则会引发 KeyError. 但实际上,调用set的pop()方法是某种顺序pop元素的. ...

最新文章

  1. insightface 切换GPU训练报错解决
  2. 软件工程硕士和计算机硕士论文题目,计算机硕士毕业论文答辩自述
  3. 读tomcat源码,随笔类图
  4. POJ3751 时间日期格式转换【日期计算】
  5. 发生在“注解”@的那些事儿
  6. 【译文练习】ReactiveCocoa概要:了解和使用RACCommand
  7. 简单报价单模板_圣诞节祝福邮件必这样写【附件参考模板BY埃马】
  8. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十九) 落雷!治疗!陷阱!连锁闪电!多段群伤!魔法之终极五重奏②...
  9. C# 性能优化之斤斤计较篇 二
  10. 案例分享:Windows Phone上的移动浏览体验
  11. iis php 内存溢出,iis-7.5 - HTTP错误405.0-不允许方法IIS 7.5模块staticfilemodule - 堆栈内存溢出...
  12. 图像处理:RGB565转RGB888
  13. bochs+linux可上网版,bochs win7镜像可
  14. CST学习:圆形贴片天线四元阵设计(一)阵元设计
  15. 用wait¬ify实现多线程才是正确打开方式
  16. 微信小游戏申请注册流程+开发微信小游戏类目需要具备条件
  17. 商城项目15_采购需求、合并采购单、领取采购单、完成采购、仓库流程图
  18. 关于北大中文系应用语言学(上):更多有趣的汉语语法现象
  19. html中radio设置默认值
  20. 算法小记(1)--判断三个数的最大,最小

热门文章

  1. 一款基于flask框架的音乐网站
  2. 10086上线明星客服语音,运营商Z世代争夺战全面打响
  3. 网易云音乐的“红与黑”
  4. 计算机视觉CV的入门理解
  5. C语言:定义一个数组,5个元素,从xiao到da排序
  6. 每个人的初恋,大都十分纯情。跨过了初恋,爱情就生出了很多姿态。(zt)
  7. jeecg输入中文查询导表为空_JEECG 通用数据库导入导出excel
  8. java毕业设计宠物喂养资讯分享平台的设计与实现Mybatis+系统+数据库+调试部署
  9. ChatGPT 插件功能深度解析:acquire、scholarai、form
  10. 四月新影片扎堆 即将上映7部电影大推荐