Python 中的集合类似于数学中的集合概念,它是一组无序、不可重复数据的组合。集合用{ ...}创建,某种程度上可以把集合看作是没有值的字典。集合是Python里面非常重要的数据类型,其中的方法总共有17个,数量掌握这些方法,对数据的处理效率会大大提高,特别是在计算字符串长度,交集并集等,非常有用现在分享给大家。

#获取集合的所有方法print(dir(set()))[..., 'add', 'clear', 'copy', 'difference', 'difference_update','discard', 'intersection', 'intersection_update', 'isdisjoint','issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference','symmetric_difference_update', 'union', 'update']

01、add()

描述:add() 方法用于给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。注意:集合中只能包含可哈希的对象,即 list,dict 都不能嵌入到集合

语法:set.add(elmnt)

参数:elmnt -- 必需,要添加的元素。

添加不存在的元素set1 = {'周扬青','徐怀钰','Makiyo','Selina'}#建一个罗志祥的女友集合set1.add('罗玉凤')#给他加个凤姐进去set1{'Makiyo', 'Selina', '周扬青', '徐怀钰', '罗玉凤'}set1.add('乔碧萝')#再给罗志祥加个乔碧萝set1{'Makiyo', 'Selina', '乔碧萝', '周扬青', '徐怀钰', '罗玉凤'}#添加存在的元素set1.add('徐怀钰')set1{'Makiyo', 'Selina', '乔碧萝', '周扬青', '罗玉凤'}#我们发现,还是只有五个

02、clear()

描述:clear() 方法用于移除集合中的所有元素。

语法:set.clear()

参数:无。set1 = {'周扬青','徐怀钰','Makiyo','Selina'}#建一个罗志祥的女友集合set1.clear()#一下全部清除了set1set()#返回一个空集合

03、copy()

描述:copy() 方法用于复制一个集合,会重新生成一个

语法:set.copy()

参数:无set1 = {'周扬青','徐怀钰','Makiyo','Selina'}#建一个罗志祥的女友集合set2 = set1.copy()#直接复制产生一个新的集合,要多少有多少set2{'Makiyo', 'Selina', '周扬青', '徐怀钰'}

04、difference()

描述:difference() 方法用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。也可以用set1 - set2 进行差运算,set1 减去 set1&set2 部分

语法:set.difference(set)

参数:set -- 必需,用于计算差集的集合set1 = {'周扬青','徐怀钰','Makiyo','Selina'}#建一个罗志祥的女友集合set2 = {'周扬青','徐怀钰','罗玉凤','乔碧萝'}#再建一个罗志祥的女友集合set1.difference(set2){'Makiyo', 'Selina'}

05、difference_update()

描述:difference_update() 方法用于移除两个集合中都存在的元素difference_update() 方法与 difference() 方法的区别在于 difference() 方法返回一个移除相同元素的新集合,而 difference_update() 方法是直接在原来的集合中移除元素,没有返回值。

语法:set.difference_update(set)

参数:set -- 必需,用于计算差集的集合set1 = {'周扬青','徐怀钰','Makiyo','Selina'}#建一个罗志祥的女友集合set2 = {'周扬青','徐怀钰','罗玉凤','乔碧萝'}#再建一个罗志祥的女友集合set1.difference_update(set2)#无返回值print(set1){'Makiyo', 'Selina'}

06、discard()

描述:discard() 方法用于移除指定的集合元素。该方法不同于 remove()方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。

语法:set.discard(value)

参数:value -- 必需,要移除的元素#构建一个罗志祥历任女友的集合set1 = {'周扬青','徐怀钰','Makiyo','Selina'}#现在我们拿走一个看看set1.discard('徐怀钰')set1{'Makiyo', 'Selina', '周扬青'}#人家还剩3个,真是#再拿走一个集合里面没有的,发现并没有报错set1.discard('女助理')set1{'Makiyo', 'Selina', '周扬青'}#用remove方法试试,发现就报错了set1.remove('女助理')KeyError: '女助理'

07、intersection()

描述:intersection() 方法用于返回两个或更多集合中都包含的元素,即交集。set1 & set2 #交运算

语法:set.intersection(set1,set2...etc)

参数:set1 -- 必需,要查找相同元素的集合

set2 -- 可选,其他要查找相同元素的集合,可以多个,多个使用逗号 ,#两个集合取交集set1 = {'周扬青','徐怀钰','Makiyo','Selina'}#建一个罗志祥的女友集合set2 = {'周扬青','徐怀钰','罗玉凤','乔碧萝'}#再建一个罗志祥的女友集合set1.intersection(set2){'周扬青', '徐怀钰'}#多个集合取交集x = {'a', 'b', 'c'}y = {'c', 'd', 'e'}z = {'f', 'g', 'c'}result = x.intersection(y, z)print(result){'c'}

08、intersection_update()

描述:intersection_update() 方法用于获取两个或更多集合中都重叠的元素,即计算交集。intersection_update()方法不同于intersection()方法,因为intersection()方法是返回一个新的集合,而intersection_update()方法是在原始的集合上移除不重叠的元素。

语法:set.intersection_update(set1,set2...etc)

参数:set1 -- 必需,要查找相同元素的集合

set2 -- 可选,其他要查找相同元素的集合,可以多个,多个使用逗号 , 隔开set1 = {'周扬青','徐怀钰','Makiyo','Selina'}#建一个罗志祥的女友集合set2 = {'周扬青','徐怀钰','罗玉凤','乔碧萝'}#再建一个罗志祥的女友集合set1.intersection_update(set2)print(set1){'周扬青', '徐怀钰'}

09、isdisjoint()

描述:isdisjoint() 方法用于判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

语法:set.isdisjoint(set)

参数:set -- 必需,要比较的集合x = {'apple', 'banana', 'cherry'}y = {'google', 'runoob', 'facebook'}z = x.isdisjoint(y)print(z)True

10、issubset()

描述:issubset()判断 set1 是否是 set2 的子集,如果是则返回 True,否则返回 False。

语法:set.issubset(set)

参数:set -- 必需,要比查找的集合x = {'a', 'b', 'c'}y = {'f', 'e', 'd', 'c', 'b', 'a'}z = x.issubset(y)print(z)Truex = {'a', 'b', 'c'}y = {'f', 'e', 'd', 'c', 'b'}z = x.issubset(y)print(z)False

11、issuperset()

描述:issuperset() 方法用于判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False。

语法:set.issuperset(set)

参数:set -- 必需,要比查找的集合x = {'f', 'e', 'd', 'c', 'b', 'a'}y = {'a', 'b', 'c'}z = x.issuperset(y)print(z)Truex = {'f', 'e', 'd', 'c', 'b'}y = {'a', 'b', 'c'}z = x.issuperset(y)print(z)False

12、pop()

描述:pop() 方法用于随机移除一个元素。

语法:set.pop()

参数:set1 = {'周扬青','徐怀钰','Makiyo','Selina'}set1.pop()'徐怀钰'set1{'Makiyo', 'Selina', '周扬青'}

13、remove()

描述:remove() 方法用于移除集合中的指定元素。该方法不同于discard()方法,因为remove()方法在移除一个不存在的元素时会发生错误,而discard()方法不会。

语法:set.remove(item)

参数:item -- 要移除的元素#构建一个罗志祥历任女友的集合set1 = {'周扬青','徐怀钰','Makiyo','Selina'}#现在我们拿走一个看看set1.remove('徐怀钰')set1{'Makiyo', 'Selina', '周扬青'}#人家还剩3个,真是#再拿走一个集合里面没有的,发现并没有报错set1.discard('女助理')set1{'Makiyo', 'Selina', '周扬青'}#用remove方法试试,发现就报错了set1.remove('女助理')KeyError: '

14、symmetric_difference()

描述:symmetric_difference() 方法返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。

语法:set.symmetric_difference(set)

参数:set -- 集合set1 = {'周扬青','徐怀钰','Makiyo','Selina'}#建一个罗志祥的女友集合set2 = {'周扬青','徐怀钰','罗玉凤','乔碧萝'}#再建一个罗志祥的女友集合set1.symmetric_difference(set2){'Makiyo', 'Selina', '乔碧萝', '徐怀钰', '罗玉凤'}

15、symmetric_difference_update()

描述:symmetric_difference_update() 方法移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

语法:set.symmetric_difference_update(set)

参数:set -- 要检测的集合set1 = {'周扬青','徐怀钰','Makiyo','Selina'} #建一个罗志祥的女友集合set2 = {'周扬青','徐怀钰','罗玉凤','乔碧萝'}#再建一个罗志祥的女友集合set1.symmetric_difference_update(set2)print(set1){'Selina', '乔碧萝', 'Makiyo', '罗玉凤'}

16、union()

描述:union() 取并集,效果等同于 | ,重复元素只会出现一次,但是括号里可以是 list,tuple,其他 , 甚至是 dict

语法:set.union(set1, set2...)

参数:set1 -- 必需,合并的目标集合

set2 -- 可选,其他要合并的集合,可以多个,多个使用逗号 , 隔开。

示例:

#两个集合的并集set1 = {'小苹果','大桃子','长香蕉'}set2 = {'小李子','大萝卜','长香蕉'}set1.union(set2){'大桃子', '大萝卜', '小李子', '小苹果', '长香蕉'}#长香蕉只出现一次#三个集合并集set3 = {'烂柿子','罗志祥'}set1.union(set2,set3){'大桃子', '大萝卜', '小李子', '小苹果', '烂柿子', '罗志祥', '长香蕉'}#集合和列表也可以set4=['小可爱','西红柿']set1.union(set4){'大桃子', '小可爱', '小苹果', '西红柿', '长香蕉'}#利用交集并集来写一个字符串相似的小方法def jaccard_sim(arg0,arg1):set1 = set(arg0)set2 = set(arg1)sim = len(set1.intersection(set2))/len(set1.union(set2))return(sim)#intersection 求集合的交集arg0 = '(质量问题)标识标签不合格'arg1 = '(质量问题)涉嫌质量不合格'jaccard_sim(arg0,arg1)0.6428571428571429#检测下两个标题的相似性arg0 = '罗志祥道歉人设崩塌:多个品牌商中枪 代言微博遭删除'arg1 = '凌晨五点的罗志祥:你知不知道为了出轨,我有多努力'jaccard_sim(arg0,arg1)0.1428571428571

17、update()

描述:update() 方法用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。

语法:set.update(set)

参数:set -- 必需,可以是元素或集合x = {'apple', 'banana', 'cherry'}y = {'google', 'runoob', 'apple'}x.update(y)print(x){'banana', 'apple', 'google', 'runoob', 'cherry'}

python中集合比大小方法_Python集合17个方法详解相关推荐

  1. python中if else语句用法_Python if else条件语句详解

    前面我们看到的代码都是顺序执行的,也就是先执行第1条语句,然后是第2条.第3条--一直到最后一条语句,这称为顺序结构. 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用, ...

  2. python中wraps是什么意思_Python的wraps修饰器详解

    标签: 本文和大家分享的主要是python 中wraps 修饰器相关内容,一起来看看吧,希望对大家 学习python有所帮助. 在了解  wraps  修饰器之前,我们首先要了解  partial   ...

  3. python中枚举类型enum用法_Python枚举类型Enum用法详解

    实际开发中,我们离不开定义各种类型,当我们需要定义类型时,一般是通过一组整数来定义.比如:定义不同的月份 JAN 1 FEB 2 MAR 3 ... NOV 11 DEC 12 复制代码 大多数人想到 ...

  4. python中complex函数的用法_Python 内置函数complex详解

    英文文档: class complex([real[, imag]]) Return a complex number with the value real + imag*1j or convert ...

  5. python跨函数调用变量_对python中不同模块(函数、类、变量)的调用详解

    首先,先介绍两种引入模块的方法. 法一:将整个文件引入 import 文件名 文件名.函数名( ) / 文件名.类名 通过这个方法可以运行另外一个文件里的函数 法二:只引入某个文件中一个类/函数/变量 ...

  6. python中的异常分类_列举 5 个 Python 中的异常类型以及其含义【面试题详解】

    今天爱分享给大家带来列举 5 个 Python 中的异常类型以及其含义[面试题详解],希望能够帮助到大家. BaseException +-- SystemExit +-- KeyboardInter ...

  7. python中bd是什么属性_python数据类型及其特有方法

    一.运算符 in方法 "hello" in "abcdefghijklmnopqrstuvwxyz" "li" in ["gg&q ...

  8. python中的阶乘求和公式_Python阶乘求和的方法

    Python阶乘求和的方法 题目描述: 获得用户输入的整数n,输出 1! 2! - n!的值. 如果输入数值为0.负数.非数字或非整数,输出提示信息:输入有误,请输入正整数. (推荐学习:Python ...

  9. python中输出字体大小改变_python中变量的输入与输出

    python中变量的输入与输出 <1>输出 python中变量的输出 # 打印提示print('hello world')print('给我的卡---印度语,你好的意思')# 输出变量ur ...

  10. python输出图形效果的代码_python打印图形大全(详解)

    原博文 2019-04-13 23:48 − 1)for i in range(0,10): shixin=chr(9679) print(shixin) -------------------结果: ...

最新文章

  1. Effective C++ 条款05
  2. javascript系列之DOM(三)---事件
  3. 哈希表的画法_智慧树知到_机械制图A_答案新版
  4. 计算机中字长名词解释,《计算机科学概论》复习题(内含参考答案)
  5. Xcode增加头文件搜索路径的方法
  6. Github 开源趋势榜 TOP 1:英伟达升级发布二代 StyleGAN!
  7. 华为回怼特朗普;中兴首款 5G 上市;iPhone 可免息分期购买 | 极客头条
  8. 超英文邮件50%!Flink 中文邮件列表必须有姓名
  9. Java 基于UDP 实现单播、组播、广播 Socket 编程
  10. seata xid是什么_Spring Cloud Alibaba分布式事务解决框架Seata概念入门篇
  11. 本地存储和服务器存储
  12. 四种超实用的超级记忆法-数字定桩法,借助语句定桩法,标题定桩法,记忆宫殿法
  13. sqlserver中日期转字符串
  14. 2022-2028年中国高尔夫行业市场现状分析及投资前景评估报告
  15. 手机屏幕分类、材料硬度解析
  16. 获取Android系统关机时间
  17. 公寓这个大坑,劝大家不要再跳了
  18. 清华人工智能研究院今日成立!张钹姚期智坐镇,Jeff Dean被聘顾问委员
  19. mysql多次登录失败控制,Mysql登录失败多次锁定配置
  20. php导出数据库为excel文件,phpexcel导出数据库成excel文件

热门文章

  1. c语言二的n次方,c语言练习之路(二阶方阵的n次方)
  2. 单链表逆序输出(递归)
  3. 软考含金量大么?考软考有什么用呢?
  4. 【附源码】计算机毕业设计JAVA星光在线光影系统
  5. nodejs的部署的问题
  6. 科普篇 .net域名与.top域名之间存在什么区别?.com和.cn呢?
  7. 尚硅谷商城购物系统 安卓App
  8. 是时候展现“真正”的技术了!
  9. 错误0x800703e3服务器传输文件,错误0xc000012f,错误状态0xc0000006
  10. 一分钟解答什么是CS资质认证