我的编程空间,编程开发者的网络收藏夹
学习永远不晚

详细介绍Python中的set集合

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

详细介绍Python中的set集合

Python中的set集合

一、集合是什么?

集合是什么呢?相信读者朋友们哪怕是没有用过集合这个数据类型。也一定在数学课堂上听过集合这个名词。数学中的集合是一个基本概念,说白了一堆不重复的数字可以组成一个集合。回到Python中集合的数据类型,它可以用来存放多个不重复的数据,并且这些数据的数据类型是不可变类型。这些不可变类型包括数字,字符串,元组。也就是说可变的数据类型如列表,字典是不能作为集合的元素的。
Python中的集合分为两种,一种是set类型的集合,另一种是fronzenset类型的集合。这两种类型的集合的区别是:set集合可变,即可以添加,删除集合内部的元素,而fronzenset集合则不可变。即不能添加,删除集合内部的元素。
set集合的定义是{element1,element2,...,elementn}, 其中,element1~elementn表示集合中的元素,个数没有限制。每个元素都是唯一的。

二、set集合怎么用?

1、创建set集合

创建set集合的方式有两种:
第一种:通过{}方式创建,其语法格式是:{element1,element2,...,elementn}
第二种:通过set 函数, 其语法格式是:set(iterable) 其中iterable不传的话,则会创建一个空的set对象。传入的iterable必须是可以遍历的序列,例如字符串,列表等。举个例子:


set_demo = {'1', 2, ('码农', '飞哥')}
print(set_demo)
list = [1, 'test', 1, ('码农', '飞哥')]
print('列表list结果=', list)
set_demo1 = set(list)
print('生成的set结果=', set_demo1)

运行结果是:


{2, ('码农', '飞哥'), '1'}
列表list结果= [1, 'test', 1, ('码农', '飞哥')]
生成的set结果= {1, ('码农', '飞哥'), 'test'}

可以看到列表list中哪怕有两个1元素,但是生成set集合之后还是只有一个1元素,也就是说在集合中值相同的元素只会存储一遍。

2、删除set集合

删除set集合可以通过del(setname)函数来删除,setname是要删除的set集合名称。

3、访问set集合元素

由于集合中的元素是无序的,因此五香向列表那样使用下标访问元素,Python中,访问集合元素最常用的方法是使用循环,将集合中的元素逐一读取出来。


set_demo = {'1', 2, ('码农', '飞哥')}
for value in set_demo:
    print(value)

运行结果是:


2

('码农', '飞哥')

1

元素的输出也是无序的。

4、删除集合中的元素

删除集合中的元素的方式有两种:
第一种:通过remove()方法,其语法结构是:setname.remove(element),其中,setname为待操作的set集合,element为需要删除的元素,如果删除失败的话则会报KeyError错误。
第二种:通过discard()方法,其使用跟remove()方法一致,只是如果删除元素失败的话不会报错。


set_demo = {'1', 2, ('码农', '飞哥')}
set_demo.remove('1')
print('删除元素1之后的集合=', set_demo)
set_demo.discard('5')
print('删除元素5之后的集合=', set_demo)

运行结果是:


删除元素1之后的集合= {2, ('码农', '飞哥')}
删除元素5之后的集合= {2, ('码农', '飞哥')}

5、向集合中添加元素

通过add函数可以向集合中添加元素,其语法结构是:setname.add(element),其中setname是待操作的set集合,element是待添加的元素,只能添加不可变的元素,例如:数字,元组或者字符串,不能添加列表,字典,set集合这类可变的数据。
举个例子:


set_demo.add('6')
print('添加元素6之后的结果是=', set_demo)

运行结果是:


添加元素6之后的结果是= {2, '6', ('码农', '飞哥')}

三、set集合的交并补

在数学中集合是有交集并集和补集的。Python中的集合也是有这些概念的。

1、交集

通过&连接两个set集合就能生成一个新的集合,新集合取两个原集合的公共元素。

2、并集

通过|连接两个set集合就能生成一个新的集合,新集合取两个原集合的全部元素。

3、差集

通过-连接两个set集合就能生成一个新的集合,新集合取一个集合中有而另一个集合中没有的元素。

举个栗子:


set_demo = {1, 3, 5, 6}
set_demo1 = {2, 4, 6}
print("取交集的结果=", set_demo & set_demo1)
print("取并集的结果=", set_demo | set_demo1)
print("取差集的结果=", set_demo - set_demo1)

运行结果是


取交集的结果= {6}
取并集的结果= {1, 2, 3, 4, 5, 6}
取差集的结果= {1, 3, 5}

四、set中的其他方法

通过dir(set)可以查看set集合中的所有方法。一共有如下方法:


['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']

方法的命名比较规范,按照英文名都能猜测出方法的作用,在此就不在赘述每个方法的含义了。直接举例说明下:


set_demo = {1, 3, 5, 6}
set_demo1 = {2, 4, 6}
set_demo.update({12, (2, 3)})
print('set_demo调用update方法之后', set_demo)
set_demo = {1, 3, 5, 6}
print('set_demo调用union方法之后', set_demo.union(set_demo1))
print('set_demo调用difference方法之后', set_demo.difference(set_demo1))
print('set_demo调用__sub__方法之后', set_demo.__sub__(set_demo1))

运行结果是:


set_demo调用update方法之后 {1, 3, (2, 3), 5, 6, 12}
set_demo调用union方法之后 {1, 2, 3, 4, 5, 6}
set_demo调用difference方法之后 {1, 3, 5}
set_demo调用__sub__方法之后 {1, 3, 5}

五、frozenset 集合

frozenset集合是set集合的不可变版本,与set集合相比,frozenset集合中的元素不可变,也就是没有添加元素,删除元素的方法。
创建一个frozenset集合的方式是通过frozenset()方法。 其语法格式是:frozenset(iterable) 其中iterable不传的话,则会创建一个空的set对象。传入的iterable必须是可以遍历的序列,例如字符串,列表等。


frozenset_demo = frozenset(list)
print("frozenset_demo的类型是=", type(frozenset_demo))
print("frozenset_demo的结果=", frozenset_demo)

运行结果是:


frozenset_demo的类型是= <class 'frozenset'>
frozenset_demo的结果= frozenset({('码农', '飞哥'), 1, 'test'})

以上就是详细介绍Python中的set集合的详细内容,更多关于Python中的set集合的资料请关注编程网其它相关文章!希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

详细介绍Python中的set集合

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ES6中Set与WeakSet集合详细介绍

这篇文章主要讲解了“ES6中Set与WeakSet集合详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ES6中Set与WeakSet集合详细介绍”吧!目录Set是值永不重复的特殊集合S
2023-06-20

Python中的列表详细介绍

本篇内容主要讲解“Python中的列表详细介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的列表详细介绍”吧!Python中的for循环Python中的for循环语句按顺序遍历任
2023-06-16

python中re模块的详细介绍

本篇内容介绍了“python中re模块的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!正则表达式的元字符有. ^ $ * ? { [
2023-06-04

Python中的SET集合操作

python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric differenc
2023-01-31

Python中类型检查的详细介绍

前言 大家都知道Python 是一门强类型、动态类型检查的语言。所谓动态类型,是指在定义变量时,我们无需指定变量的类型,Python 解释器会在运行时自动检查。 与静态类型语言(如 C 语言)相比,这不仅仅是少写了几个类型声明字符:#inc
2022-06-04

常用Windows 8操作小技巧集合详细介绍

微软Windows 8操作系统来了,今天我们想和大家分享12则Win8技巧:查询天气、拼写检查、休眠或睡眠。希望对你有所帮助。1、Metro主屏 当用户登录Windows 8系统之后,新的Metro启动屏幕就会出现,上面铺满了瓦片式的程序。
2022-06-04

Python中数据类型的详细介绍

这篇文章主要讲解了“Python中数据类型的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中数据类型的详细介绍”吧!目录1、字符串2、布尔类型3、整数4、浮点数5、数字6
2023-06-02

Python中关于集合的介绍及用法

一、集合的含义及创建方法集合(set)是一种无序的并且里面存放不同元素的序列。集合可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。创建  集
2023-01-30

seata的部署和集成详细介绍

这篇文章主要介绍了Javaseata的部署和集成,文章中有详细的代码示例和图片讲解,对学习seata有一定的参考价值,需要的朋友可以参考一下
2023-05-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录