美文网首页
python06_Set

python06_Set

作者: 詹亮的小仓库 | 来源:发表于2020-03-06 12:13 被阅读0次

    变量类型-Set

    1. 特性

      set是一个无序且不重复的元素集合。

      集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员。

      但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值。

      set和dict一样,只是没有value,相当于dict的key集合,由于dict的key是不重复的,且key是不可变对象因此set也有如下特性:

      • 不重复

      • 元素为不可变对象

    2. 创建

      s = set()
      s = {11,22,33,44}  #注意在创建空集合的时候只能使用s=set(),因为s={}创建的是空字典
      
      s1={}
      s2={1}
      s3=set()
      print(type(s1)) #dict
      print(type(s2)) #set
      print(type(s3)) #set
      
      a=set('body')
      b=set(['y', 'b', 'o','o'])
      c=set({"k1":'v1','k2':'v2'})
      d={'k1','k2','k2'}
      e={('k1', 'k2','k2')}
      
    3. 基本操作

      1. 添加

        se.add(1)

      2. discard()-移除不存的元素不会报错

       ```
           se = {11, 22, 33}
           se.discard(11)
           se.discard(44)  # 移除不存的元素不会报错
           print(se)
       ```
      
      1. remove(44)-移除不存的元素会报错
       ```
           se = {11, 22, 33}
           se.remove(11)
           se.remove(44)  # 移除不存的元素会报错
           print(se)
       ```
      
      1. pop()-移除末尾元素
       ```
           se = {11, 22, 33}  # 移除末尾元素并把移除的元素赋给新值
           temp = se.pop()
           print(temp)  # 33
       ```
      
      1. intersection() -取交集,赋给新值
       ```
           se = {11, 22, 33}
           be = {22, 55}
      
           temp1 = se.intersection(be)             #取交集,赋给新值
           print(temp1)  # 22
           print(se)  # {11, 22, 33}
      
           temp2 = se.intersection_update(be)      #取交集并更新自己
           print(temp2)  # None
           print(se)  # 22
       ```
      
    4. 判断

    ```
        se = {11, 22, 33}
        be = {22}
    
        print(se.isdisjoint(be))        #False,判断是否不存在交集(有交集False,无交集True)
        print(se.issubset(be))          #False,判断se是否是be的子集合
        print(se.issuperset(be))        #True,判断se是否是be的父集合
    ```
    
    1. 合并(se和be的并集 减去 se和be的交集)

          se = {11, 22, 33}
          be = {22,55}
      
          temp1 = se.symmetric_difference(be)  # 合并不同项,并赋新值
          print(temp1)    #{33, 11, 55}
          print(se)       #{33, 11, 22}
      
          temp2 = se.symmetric_difference_update(be)  # 合并不同项,并更新自己
          print(temp2)    #None
          print(se)             #{33, 11, 55}
      
    2. 取并集

          se = {11, 22, 33}
          be = {22,44,55}
      
          temp=se.union(be)   #取并集,并赋新值
          print(se)       #{33, 11, 22}
          print(temp)     #{33, 22, 55, 11, 44}
      

      合并且更新

          se = {11, 22, 33}
          be = {22,44,55}
      
          se.update(be)  # 把se和be合并,得出的值覆盖se
          print(se)
          se.update([66, 77])  # 可增加迭代项
          print(se)
      
    3. 类型转化

          se = set(range(4))
          li = list(se)
          tu = tuple(se)
          st = str(se)
      

    相关文章

      网友评论

          本文标题:python06_Set

          本文链接:https://www.haomeiwen.com/subject/ilovrhtx.html