zoukankan      html  css  js  c++  java
  • python中的集合

    集合


    确定的无序的一组数据就是集合。

    • 集合中的值不会重复(唯一)
    • 集合中的元素没有任何顺序
    • 集合中可以使用整数,浮点数,布尔值,复数,字符串,元组,冰冻集合

    集合操作


    创建集合


    创建空集合

    变量 = set()
    

    创建多个数据的集合

    变量 = {值,值....}
    注意:集合是唯一性数据,所有相同的数据只会保留一份。
    

    集合的基本操作


    集合不存在基本操作

    集合的序列操作


    序列操作仅可以进行成员检测

    值 in 集合
        检测某个值是否存在于集合当中
    

    值 not in 集合
    检测一个值是否不再集合当中

    集合的序列函数


    len()

    计算集合的长度
    

    max()

    获取集合中的最大值
    

    min()

    获取集合中的最小值
    

    set()

    创建空集合或者将其他数据转换为集合
    

    集合的遍历


    普通序列的遍历

    for 变量 in 集合:
        使用变量
    

    多级集合

    集合 = {(值,值..),(值,值..)。。。}
    for 变量1,变量2 in 集合:
        使用变量1和变量2
    

    集合内涵/推导式


    普通的集合推导式

    变量={i for i in 集合}
    

    带有判断条件的推导式

    变量={i for i in 集合 if}
    

    多循环推导式

    变量 = {i+j for i in 集合1 for j in 集合2}
    

    带有判断条件的多循环推导式

    变量 = {i+j for i in 集合1 for j in 集合2 if 条件表达式}
    

    集合专用函数


    add()

    向集合中添加一个元素
    格式:集合.add(值)
    返回值:None
    注意:直接改变原有集合
    

    pop()

    随机删除集合中的一个元素
    格式:集合.pop()
    返回值:删除的那个元素
    注意:直接改变原有集合
    

    remove()

    删除集合中的某个元素
    格式:集合.remove(值)
    返回值:None
    注意:直接改变原有集合
    

    discard()

    删除集合中的某个元素
    格式:集合.dicard(值)
    返回值:None
    注意:直接改变原有集合
    

    remove移除非成员值会报错,discard移除非成员值,啥也不错!

    clear()

    清空集合
    格式:集合.clear()
    返回值:None
    注意:直接改变原有集合
    

    copy()

    复制集合
    格式:集合.copy()
    返回值:复制的一份集合
    

    difference()

    差集
    格式:集合1.difference(集合2)
    返回值:集合
    操作:获取存在于集合1但是不存在与集合2中的数据的集合
    

    difference_update()

    差集 更新
    格式:集合1.difference(集合2)
    返回值:无 直接将结果赋值给集合1
    操作:获取存在于集合1但是不存在与集合2中的数据的集合
    

    intersection()

    交集
    格式:集合1.intersection(集合2)
    返回值:集合
    操作:获取即存在于集合1又存在于集合2中的数据组成的集合
    

    intersection_update()

    交集更新
    格式:集合1.intersection_update(集合2)
    返回值:None  直接将结果赋值给集合1
    操作:获取即存在于集合1又存在于集合2中的数据组成的集合
    

    union()

    并集
    格式:集合1.union(集合2)
    返回值:集合
    操作:将集合1和集合2中所有数据新建一个集合(去重)
    

    update()

    并集更新
    格式:集合1.update(集合2)
    返回值:无   直接将结果赋值给集合1
    操作:将集合1和集合2中所有数据新建一个集合(去重)
    

    issuperset()

    检测一个集合是不是另外一个集合的超集
    格式:集合1.issuperset(集合2)
    返回值:布尔值
    

    issubset()

    检测一个集合是不是另外一个集合的字节
    格式:集合1.issubset(集合2)
    返回值:布尔值
    

    isdisjoint()

    检测2个集合是否不相交
    格式:集合1.isdisjoint(集合)
    返回值:布尔值
    

    symmetric_difference()

    对称差集操作
    格式:集合1.symmetric_difference(集合2)
    返回值:集合
    操作:将集合1和集合2不相交的部分取出组成的新的集合
    

    symmetric_difference_update()

    对称差集更新操作
    格式:集合1.symmetric_difference(集合2)
    返回值:None 直接将结果赋值给集合1
    操作:将集合1和集合2不相交的部分取出组成的新的集合
    

    冰冻集合/固定集合 frozenset


    冰冻集合就是一旦创建,不可以在进行任何修改的集合。

    创建一个冰冻集合


    创建空的冰冻集合

    变量 = frozenset()
    

    创建多个元素的集合

    变量 = frozenset(容器类数据)
    

    冰冻集合的遍历


    for 变量 in 冰冻集合:
        使用变量
    
  • 相关阅读:
    CODEFORCES-CONTEST653-D. Delivery Bears
    CodeForces 1244C-exgcd?
    洛谷P3948
    L2-010 排座位 (25 分) (最短路)
    L2-008 最长对称子串 (25 分) (模拟)
    L2-007 家庭房产 (25 分) (并查集)
    L2-005 集合相似度 (25 分) (STL——set)
    L2-002 链表去重 (25 分) (模拟)
    L2-001 紧急救援 (25 分) (最短路+路径打印)
    hiho 1098 最小生成树二·Kruscal算法 (最小生成树)
  • 原文地址:https://www.cnblogs.com/victorfengming/p/11931047.html
Copyright © 2011-2022 走看看