python-常量词典?

时间:2014-08-04 19:55:31

标签: python dictionary constants

我只是生成一个python词典列表,然后将其序列化为json 基本上我的代码是一个循环,我做了类似的事情:

ls.append({..values..})

此后我不会更改词典。

问题是,python中是否有一个常量字典,显然这里的重点是内存,因为我知道字典占用的内存多于列表。我只需要json的{key:value}结构,而不是字典的其他功能。

好奇我是否可以优化我的代码。

1 个答案:

答案 0 :(得分:1)

JSON的核心是将更复杂的结构转换为纯文本的标准化方式,以任何与JSON兼容的应用程序都能理解的方式。因此,存储不变的JSON使用对象的最节省时间和内存效率的方法是将其转换为JSON文本形式并将其存储在字符串中。这不仅可以避免在内存中存储字典,而且在此之后不需要再进行任何JSON转换。您可以将该字符串输出到任何需要接收JSON对象的应用程序。

>>> import json
>>> testdict = {}
>>> testdict["jared"] = "subway"
>>> jsonstr = json.dumps(testdict)
>>> jsonstr
'{"jared": "subway"}'

正如评论所指出的那样,Python没有常量,也没有我知道的更多内存受限的字典。字典被实现为哈希表,它被设计用于非常快速的插入和访问;每当你有一个非常快的数据结构时,你的权衡通常是占用大量内存。在你能想到的大多数数据结构中,这是一个持久的东西。