挑选由'n'2元组值组成的列表

时间:2011-05-12 06:53:02

标签: python pickle pyyaml

我想挑选一个列表,因为我需要很长时间才能创建列表。该列表由“n”个2元组值组成,其中第一个元组值是一个大字典(1k到10k键),第二个值是一个字符串。 N可以大到100s到1000s。我想保存这样的数据结构,以便我可以方便地加载它。如果列表是人类可读的,那将是很好的,但不是以性能为代价。

我了解ShelvePyYamlcPickleJSON。我只是不确定在给出我的数据时要使用什么。本网站和互联网上各种其他主题的初步读数表明,cPickle可能是最佳选择。这里有大师们的想法吗?

1 个答案:

答案 0 :(得分:1)

我会使用cPickle,这很好用,

# Dummy data
from random import randint as r

a,b = 97,123

d = [(dict([(chr(r(a,b)),j) for j in range(1000)]),
       ''.join([chr(r(a,b)) for i in range(5)])) 
                            for j in range(100)]

# Pickle it
import cPickle as pickle

f = open('store.dat','w')
pickle.dump(d,f)
f.close()

我还会考虑使用类似dumbdbm的内容。

稍后添加

继上面的示例之后,您可以执行类似的操作,

import dumbdbm as dbm

g = dbm.open('store.db')
g.update([(str(i),pickle.dumps(j)) for i,j in enumerate(d)])
g.close()