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+ 有序 完全无序
查找速度 极快 极快
常用场景 存储结构化数据 去重、数学运算
相关推荐
迅猛龙办公室14 分钟前
python实现倒序输出数字
开发语言·python
夏幻灵6 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱
开发语言·javascript·面试
程序猿编码6 小时前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码
开发语言·c++·大模型推理·qwen3·多模态推理
bkspiderx8 小时前
Qt 插件机制:动态扩展应用功能的核心框架
开发语言·qt·元数据·qt 插件·qpluginloader
程序员老陆8 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
沐晓时光8 小时前
C语言入门,深入理解指针(3)
c语言·开发语言
码云数智-园园9 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
禾小西9 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨9 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
全栈练习生10 小时前
AI Agent 沙箱
python·ai