前后端知识库 前后端知识库
首页
    • JavaScript
    • React
    • Vue
  • Python
  • Sanic
  • Linux
  • Ansible
归档
GitHub (opens new window)
首页
    • JavaScript
    • React
    • Vue
  • Python
  • Sanic
  • Linux
  • Ansible
归档
GitHub (opens new window)
  • Sanic

  • Python

    • Python 的动态类型介绍
    • 数字类型
    • Set类型
    • 字符串
    • 列表
    • 元组
    • 通用序列
    • 字典
    • 文件
    • 语句和语法
    • 赋值语句
    • 打印
    • if语句
    • loop循环
    • 迭代器和生成器
    • 文档
    • 函数
    • 作用域
    • 参数
    • 函数的高级特性
    • 模块
    • 模块包
    • 模块高级用法
    • 类 class
    • Python命名空间
    • 运算符重载
    • 类的设计模式
    • 类的高级主题
    • 异常
    • 异常对象
    • Unicode与字节串
    • 管理属性
    • 装饰器
    • 元类
    • 执行细节
  • backend
  • Python
devin
2023-09-09

Set类型

# Set 类型

1.Python 的set类型是集合内元素值唯一、元素值不可变的无序集。 set类型并不要求其集合内各个元素都是相同类型。

  • 唯一:set类型的集合内元素的值唯一。

    • 如果有两个变量指向同一个对象,则在set集合内只会出现一次
    • 如果有两个对象值相等,则在set集合内也只会出现一次
  • 不可变:一旦创建完毕,则set集合内的各个元素值不能修改。 > 本质上set通过元素值的哈希值来判断唯一性
    set的唯一性

    2.set本身的性质有:

  • set对象是可迭代对象

  • set对象可以增长或缩短

  • set对象可能包含各种类型的对象作为元素

  • 创建set对象的方法为调用x=set(iter),其中iter为任何序列或可迭代对象

    3.set对象有以下操作:

  • 成员关系:e in x(返回bool值)

  • 差集: x-y(返回新的set对象)

  • 并集: x|y(返回新的set对象)

  • 交集: x&y(返回新的set对象)

  • 对称差集: x^y(返回新的set对象)

    对称差集:并集中去掉交集的那部分

  • 判定 x 是否是 y 的超集: x>y(返回bool值)

  • 判定 x 是否是 y 的子集:x<y(返回bool值)
    set操作

    3.set的方法有:

  • .add(item):向set中插入一项,原地修改(返回None)。其中item为待插入项

  • .update(iter):求并集,原地修改(返回None)。其中iter为任何可迭代对象

  • .remove(item):向set中删除一项,原地修改(返回None)。其中item为待删除项

  • .intersection(iter):求交集,返回新的set对象。其中iter为任何可迭代对象

    注意这里与表达式中的set交集、并集操作的区别: 表达式中的set交集、并集操作要求两个对象均为集合

    set方法

    4.set对象是可迭代的,因此可用于len()函数,for循环,以及列表解析中,但是因为是无序的所以不支持索引和分片操作。
    set可迭代

    5.Python3 中,set常量可以用大括号创建:{1,2,3,4}等价于set([1,2,3,4])。

  • 空set必须由set([])创建,{}为空字典而不是空set

  • Python3 中,set的字符串表示为{...}形式,而不是set([...])形式

    6.set只能包含不可变的对象,因此列表对象、字典对象、set对象均不能作为set的元素。

    元组和字符串可作为set的元素

    set可迭代

    7.frozenset是set的子类型,它与set的唯一区别是: frozenset对象可以作为set的元素。
    frozenset

    8.set的解析构造(在 Python3 之后):{x**2 for x in iter},其中iter为任何可迭代对象。
    frozenset

编辑 (opens new window)
上次更新: 2023/09/09, 12:09:00
数字类型
字符串

← 数字类型 字符串→

Theme by Vdoing | Copyright © 2023-2023 devin | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式