JSON和Python的 四种核心容器

JSON

轻量级 的数据交换格式,主要用于服务器与客户端之间的传输数据

常用于:

  • Web API数据传输

  • 配置文件

  • 前后端通信

  • 数据存储

  • 不同于语言之间的数据转换

基本结构

  • 对象(键值对的集合)

  • 数组(值的有序列表)

JSON键值规则

键 必须使用双引号

值 支持六种数据类型

类型 示例
字符串 String "hello"
数字 Number 123
布尔 Boolean true
空值 Null null
对象 Object {}
数组 Array []

对象和数组嵌套

最大的特点:可以无限嵌套

注意

  • 对象内部不可以直接嵌套 数组

cpp 复制代码
{
"name":"cjj",
[20,202401]  ×××××
}
python 复制代码
{}  //object   key:value
{
"name":"cjj",
"id":"202401",
"age":20,
"love":[study,book],
"grade":
{
	"English":100,
	"Math":150
}
}
[] //array

Python容器

List

  • 基于可变长 连续 指针数组 实现。列表中存储 的并不是对象本身,而是指向对象的指针(引用)

  • 特征:

    • 有序、可变、允许重复、支持索引和切片

    • 按索引随机访问O(1) ,尾部append 均摊时间复杂度O(1)

    • 头部/中间插入或删除 (insert/pop(0))需要移动后续的所有的指针,复杂度O(n)

成员方法

  • 添加/插入 :append(x)(末尾添加)、extend(iterable)(批量扩展)、insert(i, x)(指定位置插入)

  • 删除 :pop([i])(移除并返回指定位置元素,默认末尾)、remove(x)(移除首个匹配项)、clear()(清空列表)

  • 查找/计数 :index(x)(返回首个匹配索引)、count(x)(统计出现次数)

  • 排序/翻转 :sort(key=None, reverse=False)(原址排序)、reverse()(原址反转)、copy()(浅拷贝)

使用场景

需要存储同类数据系列 ,且频繁发生修改、动态增删或所需要维持插入顺序的场景(待办事项列表、批量处理的数据集)

Tuple

  • 核心特征:有序、不可变、允许重复元素

  • 成员方法

    • 计数:count(x)---->统计元素的个数

    • 查询:index(x)------>获取元素首先出现的索引

  • 使用场景

    • 数据安全与结构化:作为函数的多个返回值 、存储配置信息 等不可变数据

    • 字典键或集合元素 :因器不可变且可哈希,作为dict的键或set的元素

Dictionary

核心特征 :键值对(Key-Value)映射,键唯一且必须可哈希 ,值可重复且类型不限。Python 3.7+ 后保持插入顺序。

常用成员方法:

  • 获取/查找 :get(key, default)(安全获取,不存在时不报错)、keys()(获取所有键)、values()(获取所有值)、items()(获取所有键值对 tuples)

  • 更新/合并 :update(other_dict)(批量更新/合并字典)、setdefault(key, default)(若键不存在则设置默认值并返回)

  • 删除 :pop(key, default)(移除并返回指定键的值)、popitem()(移除并返回最后一个键值对)、clear()(清空)

  • 拷贝 :copy()(浅拷贝)

使用场景:

  • 需要通过唯一标识快速查找数据(基于哈希表,查找效率 O(1))。

  • 表示结构化对象(如 JSON 映射、用户信息实体、配置参数等)。

Set

核心特征 :无序、元素唯一 、不可变元素(必须可哈希)。另有不可变集合 frozenset。

常用成员方法:

  • 添加/删除 :add(x)(添加)、remove(x)(删除,不存在则抛错误)、discard(x)(安全删除,不存在不报错)、pop()(随机移除并返回)、clear()

  • 集合运算(原址更新) :update()(并集)、intersection_update()(交集)、difference_update()(差集)、symmetric_difference_update()(对称差集)

  • 逻辑判断 :isdisjoint()(无重合)、issubset()(子集)、issuperset()(超集)

使用场景:

  • 快速去重:清除列表等容器中的重复项。

  • 关系测试:求并集、交集、差集(如:统计共同好友、差异用户列表)。

相关推荐
用户0190275816116 分钟前
用 DuckDB 存查 A 股 K 线:零服务、SQL 直接分析
python
程序员果子2 小时前
本体构建方法
人工智能·python·知识图谱·agent框架·本体
天天被压力2 小时前
【A股分钟级高频数据完全手册 #11】券商实时行情数据接口:实时交易(券商源)接入与字段
java·人工智能·python
总裁余(余登武)2 小时前
【python项目】:1操作EXCEl自动化开发
python·自动化·excel
芝梵家电数据笔记2 小时前
用字段表核对暖菜板长期使用条件:结构、暖区、质保边界
python·家电·数据校验·dataclass·选购
天天被压力2 小时前
【A股分钟级高频数据完全手册 #12】股票五档盘口数据接口:买卖五档实时盘口解析
java·人工智能·python
卷无止境15 小时前
RAGFlow 项目全景报告:从文档解析引擎到 Agent 原生数据库
后端·python
灿飞屋16 小时前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓
benchmark_cc16 小时前
单只股票五档盘口接入个人研究仓库:QuantDash 读取、校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
青少儿编程课堂18 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:中缀表达式求值解析
c++·python·算法·bfs·信息学竞赛