python- 常量字典?
我简单地生成一个包含多个Python字典的列表,然后把它转换成JSON格式。
基本上,我的代码是一个循环,里面做的事情类似于:
ls.append({..values..})
在这之后,我不会再修改这些字典了。
我想问的是,Python里有没有常量字典,显然这里的重点是内存,因为我知道字典占用的内存比列表要多。我只是需要{key:value}
这种结构来生成JSON,不需要字典的其他功能。
我只是好奇,是否可以稍微优化一下我的代码。
1 个回答
2
简单来说,JSON就是一种把复杂的数据结构转换成普通文本的标准方法,这样任何支持JSON的应用程序都能理解。因为这个原因,如果你有一个不需要改变的对象,最省时省内存的存储方式就是把它转换成JSON文本形式,然后存储在一个字符串里。这样不仅可以避免在内存中存储字典,还可以省去后续的JSON转换。你只需要把这个字符串输出给需要接收JSON对象的应用程序就行了。
>>> import json
>>> testdict = {}
>>> testdict["pooh bear"] = "honey tree"
>>> jsonstr = json.dumps(testdict)
>>> jsonstr
'{"pooh bear": "honey tree"}'
正如评论中提到的,Python没有常量,也没有我所知道的更节省内存的字典。字典是用哈希表实现的,这种结构设计得很快,可以快速插入和访问数据;但是,通常情况下,越快的数据结构就会占用更多的内存。这在你能想到的大多数数据结构中都是一个普遍现象。