zoukankan      html  css  js  c++  java
  • 基本数据类型—set

    一、集合的区别

      1)set是什么?

        set:是一个无序接不重复的元素集合

    >>> s = {11,22,33,44}
    >>> s
    {33, 11, 44, 22}
    

        里面存储元素的顺序并不是按之前定义的顺序,因此不能通过序号去取值

      2)与其它集合区别

        list:允许重复的集合,可修改

        tuple:允许重复的集合,不可修改

        dict:

        set:不允许重复的集合,可修改

    二、set创建

      s = set()

      s = {11,22,33}                      与字典区别:字典是键值对,而set对象都是单个元素

      注:不能用s={}的形式创建空的set对象,s = {} 这样默认创建的是字典类型

    三、set转化

      s = set(可迭代对象)              和 list 的转化很相似,但是转化后的set对象没有重复的元素

    >>> l = [11,222,11,33]
    >>> s = set(l)
    >>> s
    {33, 11, 222}
    >>> a = 'asdasss'
    >>> s1 = set(a)
    >>> s1
    {'s', 'a', 'd'}
    

    四、set 提供的功能

      add:添加一个元素到集合里

      clear:清空集合

      copy:浅拷贝

      difference:找出两个或多个集合中不同元素,将这些元素组成一个新的集合并返回这个新的集合。如: A.difference(B) 返回A中间有B没有的元素的jihe

    >>> s1 = {1,2,3,4}
    >>> s2 = {1,2,3}
    >>> s3 = {1,2}
    >>> s1.difference(s3)
    {3, 4}
    >>> s1.difference(s3,s2)
    {4}
    

      difference_update:移除相同到的元素。如: A.difference_update(B)  从A中移除B中存在的元素

    >>> s1 = {1,2,3,4}
    >>> s2 = {1,2,3}
    >>> s1.difference_update(s2)
    >>> s1
    {4}
    

      discard:移除元素(根据值来移除元素,若值不存在不报错)

    >>> s1 = {1,2,3,4}
    >>> s1.discard(4)
    >>> s1
    {1, 2, 3}
    >>> s1.discard(5)
    >>> s1
    {1, 2, 3}
    

      remove:移除元素(根据值来移除元素,若值不存在报错)

    >>> s1 = {1,2,3,4}
    >>> s1.remove(4)
    >>> s1
    {1, 2, 3}
    >>> s1.remove(5)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 5
    

      intersection:返回两个或多个集合的交集

    >>> s1 = {1,2,3,4}
    >>> s2 = {1}
    >>> s3 = {1,2}
    >>> s1.intersection(s2,s3)
    {1}
    

      intersection_update:将集合的交集赋给调用这个方法的集合

    >>> s1 = {1,2,3,4}
    >>> s2 = {1}
    >>> s3 = {1,2}
    >>> s1.intersection_update(s2,s3)
    >>> s1
    {1}
    

      isdisjoin:判断是否无交集,若没有交集返回True,反之返回False

    >>> s1 = {1,2,3,4}
    >>> s2 = {1}
    >>> s1.isdisjoint(s2)
    False
    >>> s4 = {5}
    >>> s1.isdisjoint(s4)
    True
    

      issubset:判断是不是子集合

      issuperste:判断是不是父集合

    >>> s1 = {1,2,3,4}
    >>> s2 = {1,2}
    >>> s1.issubset(s2)
    False
    >>> s1.issuperset(s2)
    True
    

      pop:随机移除一个元素(arbitrary  武断的,在这里表示随机的)

      symmetric_difference:返回两个集合中除交集以外的所有元素

    >>> s2 = {1,2,5}
    >>> s1 = {1,2,3,4}
    >>> s1.symmetric_difference(s2)
    {3, 4, 5}
    >>> s1.difference(s2)
    {3, 4}
    >>> s2.difference(s1)
    {5}
    

      symmetric_difference_update:将交集以外的所有元素赋给调用这个方法的集合

    >>> s2 = {1,2,5}
    >>> s1 = {1,2,3,4}
    >>> s1.symmetric_difference_update(s2)
    >>> s1
    {3, 4, 5}
    

      union:返回集合的并集

    >>> s2 = {1,2,5}
    >>> s1 = {1,2,3,4}
    >>> s1.union(s2)
    {1, 2, 3, 4, 5}
    

      update:批量添加元素,后面的参数要是可迭代的

    >>> s1
    {1, 2, 3, 4}
    >>> s1.update('789')
    >>> s1
    {1, 2, 3, 4, '7', '9', '8'}
    

      

     

  • 相关阅读:
    xamarin开发UWP元素的初始化设置顺序
    MailKit---状态更改和删除
    MailKit---获取邮件
    xamarin MasterDetailPage点击Master时卡顿现象
    xamarin UWP ActivityIndicator
    wpf ListView DataTemplate方式的鼠标悬停和选中更改背景色
    wpf Webbrowser 乱码问题及弹窗被遮挡
    47.go get安装库以及gopm替换方式——2020年04月12日21:04:30
    46.GRPC初识——2020年04月12日20:45:43
    45.解决github仓库下载慢问题——2020年04月12日
  • 原文地址:https://www.cnblogs.com/tandonghao/p/9151441.html
Copyright © 2011-2022 走看看