Python全栈

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

2020-02-07  本文已影响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}
      
上一篇下一篇

猜你喜欢

热点阅读