当前位置 : 主页 > 编程语言 > python >

Python-集合学习笔记(完)

来源:互联网 收集:自由互联 发布时间:2022-06-18
文章目录 ​​集合​​ ​​集合的创建​​ ​​空集合​​ ​​列表去重​​ ​​集合元素的增加​​ ​​集合元素的删除​​ ​​集合的变相改值​​ ​​集合的运算​​ ​​



文章目录

  • ​​集合​​
  • ​​集合的创建​​
  • ​​空集合​​
  • ​​列表去重​​
  • ​​集合元素的增加​​
  • ​​集合元素的删除​​
  • ​​集合的变相改值​​
  • ​​集合的运算​​
  • ​​1. 交集​​
  • ​​2. 并集​​
  • ​​3. 差集​​
  • ​​4. 反交集​​
  • ​​5. 子集与超集​​


集合

集合是无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典中的“键对象”,因此是不能重复的且唯一的。

  • 无序,用{}括起来,不包含重复元素。
  • 集合中的元素是不可变的数据,但集合本身是可变的数据类型。
  • 集合不能进行​改​的操作,但可以变相改值(​先删除后增加​)。
  • 集合的创建

    方式一:​set​

    s1 = set({1, 'lucy', False, 'haha'})
    print(s1)

    方式二:​直接创建​(建议使用)

    s1 = {1, 'lucy', False, 'haha'}
    print(s1) # {'lucy', 1, 'haha', False}

    注意:如果上述代码False改为True,由于True和1重复,结果只保留1
    s1 = {1, 'lucy', True, 'haha'}
    print(s1) # {1, 'haha', 'lucy'}

    空集合

    1. 空字典
    d = {}
    print(type(d)) # <class 'dict'>

    2. 空集合
    s = set()
    print(type(s)) # <class 'set'>

    列表去重

    li = [1, 2, 4, 3, 3, 3, 5, 6, 6, 6]
    set1 = set(li)
    new_li = list(set1)
    print(new_li) # [1, 2, 3, 4, 5, 6]

    集合元素的增加

    方式一:​add(增加一个元素)​

    set1 = {'蒙犽', '李白', '韩信'}
    set1.add('刘备')

    方式二:​update(迭代着增加)​

    set1 = {'蒙犽', '李白', '韩信'}
    set1.update(['刘备', '不知火舞', '刘备'])
    print(set1)

    集合元素的删除

    方式一:​remove(按照元素删除)​

    # 指定元素不存在会报错
    set1 = {'蒙犽', '李白', '韩信'}
    set1.remove('李白')
    print(set1) # {'蒙犽', '韩信'}

    方式二:​pop(随机删除一个元素)​

    set1 = {'蒙犽', '李白', '韩信'}
    set1.pop()
    print(set1) # {'蒙犽', '李白'}

    方式三:​clear(清空集合)​

    set1 = {'蒙犽', '李白', '韩信'}
    set1.clear()
    print(set1) # set()

    方式四:​del(删除集合)​

    set1 = {'蒙犽', '李白', '韩信'}
    del set1

    方式五:​discard(移除指定的集合元素)​

    # 如果元素不存在,则不执行任何操作
    set1 = {2, 5, 1, 7, 8}
    set1.discard(5)
    print(set1) # {1, 2, 7, 8}

    set1 = {2, 5, 1, 7, 8}
    set1.discard(9)
    print(set1) # {1, 2, 5, 7, 8}

    集合的变相改值

    # 将集合中'李白'改为'lucy'

    set1 = {'蒙犽', '李白', '韩信'}
    set1.remove('李白')
    set1.add('lucy')
    print(set1) # {'韩信', '蒙犽', 'lucy'}

    集合的运算

    1. 交集

    符号:​​&​​​ 或者 ​​intersection()​​

    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}

    print(set1 & set2) # {4, 5}
    print(set1.intersection(set2)) # {4, 5}
    2. 并集

    符号:​​|​​​ 或者 ​​union()​​

    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}

    print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7, 8}
    print(set1.union(set2)) # {1, 2, 3, 4, 5, 6, 7, 8}
    3. 差集

    符号:​​-​​​ 或者 ​​difference()​​

    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}

    print(set1 - set2) # {1, 2, 3}
    print(set1.difference(set2)) # {1, 2, 3}
    4. 反交集

    符号:​​^​​​ 或者 ​​symmetric_difference()​​

    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}

    print(set1 ^ set2) # {1, 2, 3, 6, 7, 8}
    print(set1.symmetric_difference(set2)) # {1, 2, 3, 6, 7, 8}
    5. 子集与超集
    • 子集(符号:​​<​​​ 或者​​issubset()​​)
    # set1 包含于 set2
    set1 = {1, 2, 3}
    set2 = {1, 2, 3, 4, 5, 6}
    print(set1 < set2) # True
    print(set1.issubset(set2)) # True
    • 超集(符号:​​>​​​ 或者​​issuperset()​​)
    # set2 包含 set1
    set1 = {1, 2, 3}
    set2 = {1, 2, 3, 4, 5, 6}
    print(set2 > set1) # True
    print(set2.issuperset(set1)) # True



    【本文来源:武汉网站优化 http://www.5h5q.com网络转载请说明出处】
    上一篇:Python中面向对象(学习笔记)
    下一篇:没有了
    网友评论