zoukankan      html  css  js  c++  java
  • Python 集合相关知识

    Python 基础数据类型之:集合 set

    1. 概念:集合是一种容器型数据类型,它要求里面的元素是不可变的数据,但它本身是可变的数据类型。集合是无序的,集合里的元素都是唯一的。

    2. 格式:{元素,元素,元素},与字典的区别是里面的元素并非键值对。

      set1={'amw',1,5,'kvi',True,False,'神力','视图'}
      print(set1,type(set1))		# 每次打印出来的内容顺序都不同
      >>>{False, 1, '神力', 5, '视图', 'amw', 'kvi'} <class 'set'>
      
      # 构造空集合方法
      set1 = set()
      print(set1)  	>>><class 'set'>
      
    3. 集合元素的增加:

      • set.add()方法:增加一个元素。
        set1={'amw',1,5,'kvi',True,False,'神力','视图'}
        set1.add(789)
        print(set1)
        >>>{False, 1, 5, 'amw', '神力', 'kvi', '视图', 789}
        
      • set.update()方法:迭代着增加几个元素,相同元素直接去重。
        set1={'amw',1,5,'kvi',True,False,'神力','视图'}
        set1.update('diensnd')		# 增加进去2个'd',但最终只有一个。
        print(set1)
        >>>{False, 1, 'i', 'amw', 5, 's', 'd', '神力', '视图', 'kvi', 'n', 'e'}
        
    4. 集合元素的删除:集合是无序的,所以无法用索引删除

      • set.remove()方法:删除一个指定元素
      • set.pop()方法:随机删除一个元素。
      • set.clear()方法:清空集合。
      • del set:删除整个集合。
    5. 作用(用法):

      • 列表的去重:将有重复值的列表转换成集合,直接会去除重复值。
      • 但是用这种方法去重列表内容,将会打乱顺序。
        list1 = ['amw', 1, 5, 'kvi', True, False, '神力', '视图', '神力', '视图']
        print(list1)
        >>>['amw', 1, 5, 'kvi', True, False, '神力', '视图', '神力', '视图']
        set1 = set(list1)
        print(set1)
        >>>{False, 1, 5, 'kvi', 'amw', '神力', '视图'}
        
      • 关系测试:交集、并集、差集……
        • 交集:(& 或者 intersection)
          set1 = {1, 2, 4, 5}
          set2 = {4, 5, 7, 8}
          print(set1 & set2)
          >>>{4, 5}
          print(set1.intersection(set2))
          >>>{4, 5}
          
        • 并集:(| 或者 union)
            set1 = {1, 2, 4, 5}
          set2 = {4, 5, 7, 8}
            print(set1 | set2)
          >>>{1, 2, 4, 5, 7, 8}
            print(set1.union(set2))
          >>>{1, 2, 4, 5, 7, 8}
          
        • 差集:(- 或者 difference)
          set1 = {1, 2, 4, 5}
          set2 = {4, 5, 7, 8}
          print(set1 - set2)
          >>>{1, 2}
          print(set2 - set1)
          >>>{8, 7}
          print(set1.difference(set2))
          >>>{1, 2}
          print(set2.difference(set1))
          >>>{8, 7}
          
        • 反交集:(^ 或者 symmetric_difference)
          set1 = {1, 2, 4, 5}
          set2 = {4, 5, 7, 8}
          print(set1 ^ set2)
          >>>{1, 2, 7, 8}
          print(set1.symmetric_difference(set2))
          >>>{1, 2, 7, 8}
          
        • 子集与超集:(>或者issubset,<或者issuperset)
          set1 = {4, 5}
          set2 = {4, 5, 7, 8}
          print(set1 < set2)
          print(set1.issubset(set2))
          # 以上判断是否为子集
          print(set2 > set1)
          print(set2.issuperset(set1))
          # 以上判断是否为超集
          
      • frozenset不可变集合,让集合变成不可变类型:
  • 相关阅读:
    移动端-纯css隐藏滚动条解决方案
    阻止点击穿透
    JS的防抖与节流
    go 自动安装项目依赖包
    git 修改远程仓库
    git 基础命令
    go 包govalidator
    go email
    windows下Redis的安装和使用
    go xorm,负载均衡
  • 原文地址:https://www.cnblogs.com/amwkvi/p/13168990.html
Copyright © 2011-2022 走看看