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不可变集合,让集合变成不可变类型:
  • 相关阅读:
    4 Apr 18 软件开发目录 logging模块的使用 序列化(Json, Pickle) os模块
    3 Apr 18 内置函数 列表生成式与生成器表达式 模块的使用之import 模块的使用之from…import…
    2 Apr 18 三元表达式 函数递归 匿名函数 内置函数
    30 Mar 18 迭代器 生成器 面向过程的编程
    29 Mar 18 函数 有参、无参装饰器
    28 Mar 18 函数
    27 Mar 18 函数的参数
    26 Mar 18 函数介绍
    23 Mar 18 文件处理
    22 Mar 18 补充数据类型+字符编码+文件处理
  • 原文地址:https://www.cnblogs.com/amwkvi/p/13168990.html
Copyright © 2011-2022 走看看