热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

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’}


推荐阅读
  • 一.元祖类型 (tuple)1.什么是元祖?用途:用于存放多个值,当存放的多个值只有读的需求没有改变的需求时,用元祖最合适.定义方式:在()内用逗号分隔开的多个任意类型的值t(1, ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 基于词向量计算文本相似度1.测试数据:链接:https:pan.baidu.coms1fXJjcujAmAwTfsuTg2CbWA提取码:f4vx2.实验代码:imp ... [详细]
  • 深入解析Python文本数据处理的技巧与方法
    学习Python时,它总能让人深刻体会到这款语言的魅力。今天小编为大家带来一个有趣的项目,用Python处理文本数据,一起来看看今天的问题吧 ... [详细]
  • Python之基础篇(三)
    基础篇之三:一,数据类型之set.总结:set无序,不重复。1,创建set:s{1,2,3}print(s,type(s))list1[1,2,3]s1(list1)prin ... [详细]
  • 这篇文章主要讲解了“怎么用Python写一个电信客户流失预测模型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入, ... [详细]
  • 第八章 元组与集合
    目录​一、元组二、集合三、集合的数学操作四、集合的相关操作五、集合间的关系六、列表、元组、集合、字典区别一、元组元组是python内置的数据结构之一, ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 详解 Python 的二元算术运算,为什么说减法只是语法糖?[Python常见问题]
    原题|UnravellingbinaryarithmeticoperationsinPython作者|BrettCannon译者|豌豆花下猫(“Python猫 ... [详细]
  • Python中程序员的面试题有哪些
    小编给大家分享一下Python中程序员的面试题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有 ... [详细]
author-avatar
-不想醒来-县
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有