Python基础快速复习——集合和字典

一、字典(dict)------ 键值对存储

定义 :使用 {} 存储,由 键 (key) : 值 (value) 组成,键必须唯一且不可变(字符串 / 数字 / 元组),值可以任意类型。

复制代码
定义字典字面量:{key:value,key:value,......,key:value}
定义字典变量:my_dict = {key:value,key:value,......,key:value}
定义空字典:my_dict={}或my_dict=dict()
  • 每一个元素是一个键值对,key和value可以是任意类型的数据(key不可以为字典,value任意:字典,整数,字符串等)
  • 无法用下标,可以用key找到对应的value

常用方法

  • 新增元素:字典[key]=value
  • 更新:字典[key]=value(字典key不可以重复,所有对已经存在的key执行上述操作,就是更新value值)
  • 删除:字典.pop(key),(并将其对应的value作为返回值提供)
  • 清空字典:字典.clear()
  • 获取全部的key:字典.keys()
  • 遍历字典:for key in 字典.keys()

字典特点

  1. 键必须唯一,重复键会覆盖
  2. 键不可变,不能用列表 / 字典当键
  3. Python 3.7+ 字典保留插入顺序
  4. 查找速度极快(哈希表)

二、集合(set)------ 无序不重复

定义 :使用 {} 存储,只有元素,没有键值对 ,自动去重,无序

复制代码
定义集合字面量:{元素,元素,......,元素}
定义集合变量:变量名称 = {元素,元素,......,元素}
定义空集合:变量名称 = set()

常用操作

  • 增加元素:集合.add(元素)
  • 删除原宿:集合.remove(元素)
  • 从集合中随机抽取一个元素:集合.pop()
  • 清空集合:集合.clean()
  • 集合1.difference(集合2):取出集合1和集合2的差集,集合1有集合2没有的
  • 集合1.difference_update(集合2):对比集合1和集合2,在集合1内,删除和集合2相同的元素,结果:集合1被修改,集合2不变
  • 集合1.union(集合2):将集合1和集合2组成新集合,结果:得到新集合,集合1和集合2不变。

遍历集合,只能用for,不能用while,因为集合不支持下标

集合特点

  1. 自动去重(最常用功能)
  2. 无序,不能用下标访问
  3. 元素必须不可变(不能存列表 / 字典)
  4. 成员判断 in 速度远快于列表

三、字典 vs 集合 快速对比

特性 字典 (dict) 集合 (set)
符号 {key:value} {元素}
存储形式 键值对 单个元素
去重 键自动去重 元素自动去重
顺序 3.7+ 有序 完全无序
查找速度 极快 极快
常用场景 存储结构化数据 去重、数学运算
相关推荐
阿钱真强道2 小时前
34 Python 离群点检测:什么是离群点?为什么要做异常检测?
python·sklearn·异常检测·异常·离群点检测
AC赳赳老秦2 小时前
OpenClaw关键词挖掘Agent配置(附SOP脚本,可直接复制使用)
java·大数据·开发语言·人工智能·python·pygame·openclaw
qq_416018722 小时前
数据分析与科学计算
jvm·数据库·python
qq_148115372 小时前
分布式系统容错设计
开发语言·c++·算法
leo__5202 小时前
MATLAB高斯背景建模与目标提取(人体检测)
开发语言·人工智能·matlab
m0_560396472 小时前
C++中的享元模式
开发语言·c++·算法
深藏功yu名2 小时前
Day24(进阶篇):向量数据库 Chroma_FAISS 深度攻坚 —— 索引优化、性能调优与生产级落地
数据库·人工智能·python·ai·agent·faiss·chroma
左左右右左右摇晃2 小时前
数据结构——数组
数据结构·笔记·算法
左左右右左右摇晃2 小时前
数据结构——队列
数据结构