温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中的set集合的详细介绍

发布时间:2021-09-08 07:40:42 阅读:180 作者:chen 栏目:开发技术
Python开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要讲解了“Python中的set集合的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中的set集合的详细介绍”吧!

目录
  • Python中的set集合

    • 一、集合是什么?

    • 二、set集合怎么用?

      • 1、创建set集合

      • 2、删除set集合

      • 3、访问set集合元素

      • 4、删除集合中的元素

      • 5、向集合中添加元素

    • 三、set集合的交并补

      • 1、交集

      • 2、并集

      • 3、差集

    • 四、set中的其他方法

      • 五、frozenset 集合

      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方法之后 {13, (23), 5612}
      set_demo调用union方法之后 {123456}
      set_demo调用difference方法之后 {135}
      set_demo调用__sub__方法之后 {135}

      五、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集合的详细介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

      亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

      向AI问一下细节

      免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

      AI

      开发者交流群×