
编程语言里, 字典属于极为强大的数据结构中的一种, 它是由键值对构成的数据结构, 有着好些优点。比如说, 获取值的时候时间复杂度是O(1), 于内存方面很高效, 容易进行更新、删除跟迭代操作, 还提供好多内置函数来实现快速操作。当直接使用列表时出现的问题对于这个要关注的主题, 是由于当去尝试把列表当作键的时候, 就出现了问题。列表在其中属于可变的数据类型。所以呢, 能够在列表的内部给它删除值, 进行更新值以及追加值的操作。那么, 要是从列表和列表项来生成一个哈希函数的话, 当列表里面的项发生了变化, 就没办法再找到那个哈希函数了, 原因在于哈希函数已然改变了。另外存在一个潜在问题, 那就是不同的列表有可能拥有相同的哈希值。要是有两个列表, 它们的值加起来是相同的, 那么它们的哈希值也将会是一样的。处于这种情形下, 要是把其中一个列表当作字典里的键来用, 并且去搜索有着相同哈希值的另一个列表, 字典没准就会给出错误的结果。The List To Tuple有这样一种方法, 它把字典的键列表转变成元组, 而后将这个元组用作键, 采用的是这种间接的方式, 注意, 虽然值没变化, 可数据类型已不是列表了。语法 tuple())my_dict {} my_list [1, 2, 3] my_tuple tuple(my_list) my_dict[my_tuple] Hello, World! print(my_dict){(1, 2, 3): Hello, World!}将列表转换为字符串另外一种办法是把列表转化成字符串数据类型, 字符串同样属于不可变数据类型, 所以我们能够把它当作字典的键。语法 .join(str(e) for e in ))在这里, 语句会从列表里获取各个元素, 然后把这些元素组合成一个字符串, Join函数会实现将字符串序列连接起来的操作。在代码当中, 我们首先有一个被命名为某种东西的列表。接下来, 我们运用那个将一个关于列表的某种事物联结在一起的联结操作。鉴于那某种事物能够被用作某种关键元素, 我们就把这个当作了某种事物的关键元素。my_list [1, 2, 3] my_list_str .join(str(e) for e in my_list) my_dict {my_list_str: value} print(my_dict) print(my_dict[my_list_str]){123: value} value将列表转换为JSON语法这里是JSON库的dumps方法它将Python对象序列化为JSON格式的字符串。dumps方法接受字符串的名称作为参数Example在下面的代码中我们首先导入了JSON库。接下来我们创建了一个名为my_list的列表。我们使用dumps方法从列表创建了一个序列化对象。现在我们将序列化对象作为字典键my_dict。import json my_list [1, 2, 3] my_key json.dumps(my_list) my_dict {my_key: value} print(my_dict){[1, 2, 3]: value}免费学习笔记深入立即使用在学习笔记中你将探索 的核心概念和高级技巧Example在下面的代码中我们首先导入了JSON库。接下来我们创建了一个名为my_list的列表。我们使用dumps方法从列表创建了一个序列化对象。现在我们将序列化对象作为字典键my_dict。import json my_list [1, 2, 3] my_key json.dumps(my_list) my_dict {my_key: value} print(my_dict){[1, 2, 3]: value}