zoukankan      html  css  js  c++  java
  • 037 集合类型及操作

    一、概述

    • 集合类型定义
    • 集合操作符
    • 集合处理方法
    • 集合类型应用场景

    二、集合类型定义

    集合是多个元素的无序组合

    • 集合类型与数学中的集合概念一致

    • 集合元素之间无序,每个元素唯一,不存在相同元素

    • 集合元素不可更改,不能是可变数据类型

    • 集合用大括号 {} 表示,元素间用逗号分隔

    • 建立集合类型用 {} 或 set()

    • 建立空集合类型,必须使用set()

    A = {"python", 123, ("python", 123)}  # 使用{}建立集合
    A
    
    {('python', 123), 123, 'python'}
    
    B = set("pypy123")  # 使用set()建立集合
    B
    
    {'1', '2', '3', 'p', 'y'}
    
    C = {"python", 123, "python", 123}
    C
    
    {123, 'python'}
    

    三、集合操作符

    3.1 集合间操作

    037-集合类型及操作-01.jpg?x-oss-process=style/watermark

    3.2 6个操作符

    操作符及应用描述
    S | T 返回一个新集合,包括在集合S和T中的所有元素
    S - T 返回一个新集合,包括在集合S但不在T中的元素
    S & T 返回一个新集合,包括同时在集合S和T中的元素
    S ^ T 返回一个新集合,包括集合S和T中的非相同元素
    S <= T或S < T 返回True/False,判断S和T的子集关系
    S >= T或S > T 返回True/False,判断S和T的包含关系

    3.3 4个增强操作符

    操作符及应用描述
    S |= T 更新集合S,包括在集合S和T中的所有元素
    S -= T 更新集合S,包括在集合S但不在T中的元素
    S &= T 更新集合S,包括同时在集合S和T中的元素
    S ^= T 更新集合S,包括集合S和T中的非相同元素
    A = {"p", "y", 123}
    B = set("pypy123")
    
    A - B
    
    {123}
    
    A & B
    
    {'p', 'y'}
    
    A ^ B
    
    {'1', 123, '2', '3'}
    
    B - A
    
    {'1', '2', '3'}
    
    A | B
    
    {'1', 123, '2', '3', 'p', 'y'}
    

    四、集合处理方法

    操作函数或方法描述
    S.add(x) 如果x不在集合S中,将x增加到S
    S.discard(x) 移除S中元素x,如果x不在集合S中,不报错
    S.remove(x) 移除S中元素x,如果x不在集合S中,产生KeyError异常
    S.clear() 移除S中所有元素
    S.pop() 随机返回S的一个元素,更新S,若S为空产生KeyError异常
    S.copy() 返回集合S的一个副本
    len(S) 返回集合S的元素个数
    x in S 判断S中元素x,x在集合S中,返回True,否则返回False
    x not in S 判断S中元素x,x不在集合S中,返回False,否则返回True
    set(x) 将其他类型变量x转变为集合类型
    A = {"p", "y", 123}
    for item in A:
        print(item, end="")
    
    123yp
    

    五、集合类型应用场景

    5.1 包含关系比较

    "p" in {"p", "y" , 123}
    
    True
    
    {"p", "y"} >= {"p", "y" , 123}
    
    False
    

    5.2 数据去重:集合类型所有元素无重复

    ls = ["p", "p", "y", "y", 123]
    
    s = set(ls)   # 利用了集合无重复元素的特点
    s
    
    {123, 'p', 'y'}
    
    lt = list(s)  # 还可以将集合转换为列表
    lt
    
    [123, 'y', 'p']
    

    六、小结

    • 集合使用{}和set()函数创建
    • 集合间操作:交(&)、并(|)、差(-)、补(^)、比较(>=<)
    • 集合类型方法:.add()、.discard()、.pop()等
    • 集合类型主要应用于:包含关系比较、数据去重
  • 相关阅读:
    http连接池
    消息队列场景简介
    项目中使用到的设计模式
    dubbo 问题整理
    dubbo Filter
    Elastic-Job分布式作业框架
    别被平凡淹没
    spring中@value注解需要注意
    穷人的真相:从7点忙到23点的上班者,跳出穷人圈子唯一可能是.
    ContextLoaderListener类(spring源码解析)
  • 原文地址:https://www.cnblogs.com/abdm-989/p/14129846.html
Copyright © 2011-2022 走看看