本文最后更新于:2024年5月7日 下午
Python 字典是基本的数据结构之一,有时需要用到多个键值维护一组数据,事实上python的
dict
已经支持类似功能,本文记录实现方法。
python 字典简介
-
字典是另一种可变容器模型,且可存储任意类型对象。
-
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
1
d = {key1 : value1, key2 : value2 }
-
python 中字典的
key
要求可哈希,而且必须不可变,可以用数字、字符串、元组作为键值(列表不可以)
多键值需求描述
-
我们需要查找某个数据需要多组
key
,好像多维空间中的坐标轴,维度数量可能可变可能不变 -
对于多键值的实现有两种思路:
- 单 key 多键值
- 多 key
-
用例:
编号 数据 key1 key2 key3 1 ‘hello’ ‘foo’ ‘bar’ - 2 ‘world’ ‘nice’ ‘to’ ‘see’ 3 ‘do not reply’ ‘you’ ‘again’ - -
为空
单 key 多键值
-
字典中的
key
是唯一的,但是元组可以作为key
,因此把多组关键词用元组包裹起来可以作为唯一的key
使用 -
形式如下:
1
dict ={(ke11,key12): value, (key21,key22):value ...}
-
使用时形式:
1
2
3dict[key11,key12]
# 或
dict[(key11,key12)] -
示例代码
1 |
|
- 该方式组成的多键值字典可以同时兼容多个维度的数据,毕竟只要是没见过的元组都可以作为 key
多 key
-
单
key
多键值的方法事实上已经可以解决很多问题,如果需要比较严格地控制维度可以尝试多key
的实现方式 -
方法核心为构造字典的值为新的字典
-
示例代码:
1 |
|
- 这种方式的问题比较多:
- 组织需要精心,层层字典需要精神是分专注
- 某个
key
下值需要成为字典才可以增加关键词层数,那么这个值就无法成为其他有意义的内容 - 适用于维度固定(容易维护),需要漂亮的取值代码时使用
参考资料
文章链接:
https://www.zywvvd.com/notes/coding/python/python-multi-key-dict/python-multi-key-dict/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付
Python - 多键值字典
https://www.zywvvd.com/notes/coding/python/python-multi-key-dict/python-multi-key-dict/