美文网首页Python全栈
10.Python基础数据类型之集合

10.Python基础数据类型之集合

作者: 免跪姓黄 | 来源:发表于2020-02-07 12:57 被阅读0次

    Python基础数据类型之集合

    1. 集合(set)

      • 集合(set)是一个无序的、不重复元素序列,因此集合没有索引且没有重复的元素。集合是一个容器型的数据类型,他要求里面的元素是不可变的数据类型,但集合本身却是一个可变的数据类型。
    2. 集合的作用

      遇到如下需求,应考虑使用集合

      • 列表的去重。
      • 关系测试。交集、并集、差集等。
    3. 集合的创建方式

      可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

      • 方式一

        set_creat = set({1, 2, '集合', False})
        print(set_creat)
        # 输出结果:{False, 1, 2, '集合'}
        
      • 方式二(直接创建)

        set_creat = {1, 2, '集合', False}
        print(set_creat)
        # 输出结果:{'集合', 1, 2, False}
        
    4. 集合的增、删

        • 方式一(内置函数add)

          set_creat = {1, '集合', 'de', '增', '删'}
          set_creat.add('没有改')
          print(set_creat)
          # 输出结果:{1, '删', '没有改', '增', '集合', 'de'}
          
        • 方式二(内置函数update迭代增加)

          set_creat = {1, '集合', 'de', '增', '删'}
          set_creat.update('没有改')
          print(set_creat)
          # 输出结果:{'删', 1, 'de', '集合', '改', '增', '有', '没'}
          
        • 方式一(内置函数remove按照元素删除)

          set_creat = {1, '集合', 'de', '增', '删'}
          set_creat.remove('de')
          print(set_creat)
          # 输出结果:{1, '删', '增', '集合'}
          
        • 方式二(内置函数pop随机删除)

          set_creat = {1, '集合', 'de', '增', '删'}
          set_creat.pop()
          print(set_creat)
          # 输出结果:{'增', '集合', 'de', '删'}
          
      • 虽然集合没有“改”,但可以变相改值,即先删后增

    5. 集合的关系操作

      • 交集(使用&或intersection)

        set_1 = {1, 3, 5, 2, 4, 6}
        set_2 = {2, 4, 6, 3, 5, 7}
        print(set_1 & set_2)
        # 输出结果:{2, 3, 4, 5, 6}
        
      • 并集(使用|或union)

        set_1 = {1, 3, 5, 2, 4, 6}
        set_2 = {2, 4, 6, 3, 5, 7}
        print(set_1 | set_2)
        # 输出结果:{1, 2, 3, 4, 5, 6, 7}
        
      • 差集(使用-或difference)

        set_1 = {1, 3, 5, 2, 4, 6}
        set_2 = {2, 4, 6, 3, 5, 7}
        print(set_1 - set_2)
        # 输出结果:{1}
        
      • 反交集(使用^或symmetric_difference)

        set_1 = {1, 3, 5, 2, 4, 6}
        set_2 = {2, 4, 6, 3, 5, 7}
        print(set_1 ^ set_2)
        # 输出结果:{1, 7}
        
      • 子集(即:包含于,使用<)

        set_1 = {1, 2, 3}
        set_2 = {1, 2, 3, 4, 5, 6}
        print(set_1 < set_2)
        # 输出结果:True
        
      • 超集(即:包含,使用>)

        set_1 = {1, 2, 3}
        set_2 = {1, 2, 3, 4, 5, 6}
        print(set_1 > set_2)
        # 输出结果:False
        
    6. 集合用于列表去重

      • 使用集合对列表进行去重虽然简单,但由于集合是无序的,因此无法保证列表原来的顺序。

        list_1 = [1, 1, 1, 2, 3, 3, 4, 4, 5, 6]
        set_1 = set(list_1)
        list_1 = list(set_1)
        print(list_1)
        # 输出结果:[1, 2, 3, 4, 5, 6]
        
    7. 集合的推导式

      • 同列表和字典一样,集合也有推导式

        s = {i for i in range(1,11)}
        print(s)    # {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
        

    相关文章

      网友评论

        本文标题:10.Python基础数据类型之集合

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