我操作索引实例(比如音乐曲目),并且必须通过索引(int->string)来查找对象的名称。字典太慢了(我有大约10M个对象)。内存不是问题,所以最方便的解决方案是从带有名称的csv文件创建一个随机访问的字符串数组。
但是,我在python中做不到这一点--我得到一个错误,0维数组(字符串)不能被索引。为字符串创建随机访问容器的原生python方法是什么?
发布于 2011-02-09 22:43:50
据我所知,Python中的字典平均访问时间为O(1),但列表肯定会更快。如果你的索引不是很稀疏,你可以尝试这样做:
reader = [(1, 'a'), (2, 'b')] # Replace it with your CSV reader.
# First, fill a dictionary:
text_dict = {}
for index, text in reader:
text_dict[index] = text
# Then create a sufficiently large list:
max_index = max(text_dict.iterkeys())
texts = [None] * (max_index + 1)
# And fill it:
for index, text in text_dict.iteritems():
texts[index] = text
print texts
# prints: [None, 'a', 'b']
print texts[1]
# prints: ahttps://stackoverflow.com/questions/4945693
复制相似问题