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+ 有序 完全无序
查找速度 极快 极快
常用场景 存储结构化数据 去重、数学运算
相关推荐
花酒锄作田5 小时前
Pydantic校验配置文件
python
hboot5 小时前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络
CSharp精选营10 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
ZhengEnCi16 小时前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi17 小时前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab
曲幽17 小时前
你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
python·fastapi·web·graphql·route·cors·rest·strawberry
用户83580861879118 小时前
基于 Self-RAG 与列表级重排序的进阶 RAG 系统设计与实现
python
Warson_L1 天前
Python `Annotated` 与 LangGraph Reducer 学习笔记
python
韩师傅1 天前
海天线算法的前世今生
python·计算机视觉
韩师傅1 天前
当你的甲方设备过烂,要如何快速出效果?
python·计算机视觉