Python入门
  • Python入门
  • 0. 基础知识与安装
    • 0. 计算机基础知识
    • 1. Windows下安装
    • 2. 通过软件包管理器安装
    • 3. 通过源码安装
    • 4. 多版本管理
    • 5. Python的基础知识
    • 6. Python的内存管理
  • 1. 基本语法
  • 2. 内置数据结构
    • 1. 列表
    • 2. 元组
    • 3. 字符串
    • 4. bytes与bytearray
    • 5. 集合 (set)
    • 6. 字典
  • 3. 操作
    • 迭代与迭代器
    • 封装与解构
    • 解析式与生成器
    • 切片操作
    • del操作
  • 4. 函数
    • 1. 函数的定义与调用
    • 2. 函数的参数与参数解构
    • 3. 函数的返回值
    • 4. 函数的作用域
    • 5. 闭包
    • 6. 默认值的作用域
    • 7. 递归
  • 5. 高阶函数
    • 0. 柯里化
    • 1. 高阶函数
    • 2. 装饰器
    • 3. 参数注解
  • A. 内建函数
  • B. 算法
    • 1. 排序
      • 1.冒泡法排序
      • 2. 简单选择排序
      • 3. 二元选择排序
  • C. 模块
    • collections
    • copy
    • datetime
    • keyword
    • math
    • time
  • D. 习题
    • 九九乘法表
    • 打印菱形、三角形、闪电
    • 斐波那契数列
    • 求素数
    • 猴子吃桃
    • 杨辉三角
    • 转置矩阵
Powered by GitBook
On this page
  • 什么是集合(set)
  • set的定义(初始化)
  • set的HASH(哈希)
  • set的增删
  • add操作
  • update操作
  • remove操作
  • pop操作
  • discard操作
  • clear操作
  • set的查改
  • 修改
  • 查询
  • set间的操作
  • 并集
  • 交集
  • 差集
  • 对称差集
  • set间的比较
  • 子集
  • 真子集
  • 超集
  • 真超集
  • 是否没有交集

Was this helpful?

  1. 2. 内置数据结构

5. 集合 (set)

Previous4. bytes与bytearrayNext6. 字典

Last updated 6 years ago

Was this helpful?

什么是集合(set)

一种非线性的数据结构,是可变的、无序的(散落)、不重复的元素的可迭代的集合类型。

set的定义(初始化)

s1 = set()
s2 = {1, 2, 3}
s3 = set(range(5)) #{0, 1, 2, 3, 4}
s4 = set("abcabcde") #{a, b, c, d, e}

注意!s5 = {} 定义出来的是类型,不是set类型。

set的HASH(哈希)

set会哈希所有的值。

去重就是基于哈希的。

list 、bytearray 、dict、set不可hash,因此set在中不能出现。

set的增删

增删都是就地修改。

add操作

增加一个元素

s2.add(4)

update操作

增加可迭代对象(任意个)

s2.update(range(5))
s2.update(range(6),range(10),['a','b'])

remove操作

移除一个元素

如果没有,将会返回KeyError 。

s2.remove(4)

pop操作

随机移除一个元素并返回

s2.pop()#无参数

discard操作

移除一个元素

如果没有,不返回错误 。

s2.disard(9)

clear操作

移除所有元素

set的查改

修改

set不能修改

查询

无法索引,能够遍历迭代所有元素。 时间复杂度O(1)

set间的操作

并集

union(*others)

返回和多个集合合并后的新集合

可以用| 表示。

update(*others)

多个集合合并,就地修改

可以用|= 表示。

交集

intersection(*others)

返回和多个集合的交集

可以用& 表示。

intersection_update(*others)

多个集合的交集,就地修改

可以用&= 表示。

差集

difference(*others)

返回和多个的差集

可以用- 表示。

difference_update(*others)

获取差集,就地修改

可以用-= 表示。

对称差集

symmetric_difference(*others)

返回和多个的对称差集(并集与交集的差集)

可以用^ 表示。

symmetric_difference_update(*others)

获取对称差集,就地修改

可以用^= 表示。

set间的比较

子集

issubset(object)
<=

真子集

<

超集

issuperset(object)
>=

真超集

>

是否没有交集

isdisjoint(object)

没有交集返回True

字典