51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Python - 多键值字典

Python 字典是基本的数据结构之一,有时需要用到多个键值维护一组数据,事实上python的 dict 已经支持类似功能,本文记录实现方法。

python 字典简介 {#python-字典简介}

  • 字典是另一种可变容器模型,且可存储任意类型对象。

  • 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

    ^[1]^ {#fnref:1}

  • 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,因此把多组关键词用元组包裹起来可以作为唯一的 key 使用

  • 形式如下:

  • 使用时形式:

  • 示例代码

  • 该方式组成的多键值字典可以同时兼容多个维度的数据,毕竟只要是没见过的元组都可以作为 key

多 key {#多-key}

  • key 多键值的方法事实上已经可以解决很多问题,如果需要比较严格地控制维度可以尝试多 key 的实现方式

  • 方法核心为构造字典的值为新的字典

  • 示例代码:

  • 这种方式的问题比较多:
    • 组织需要精心,层层字典需要精神是分专注
    • 某个 key 下值需要成为字典才可以增加关键词层数,那么这个值就无法成为其他有意义的内容
    • 适用于维度固定(容易维护),需要漂亮的取值代码时使用

参考资料 {#参考资料}

  1. https://www.runoob.com/python/python-dictionary.html {#fn:1}

文章链接:
https://www.zywvvd.com/notes/coding/python/python-multi-key-dict/python-multi-key-dict/

赞(4)
未经允许不得转载:工具盒子 » Python - 多键值字典