首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中字符串的随机访问容器?

python中字符串的随机访问容器?
EN

Stack Overflow用户
提问于 2011-02-09 21:47:36
回答 1查看 1.3K关注 0票数 2

我操作索引实例(比如音乐曲目),并且必须通过索引(int->string)来查找对象的名称。字典太慢了(我有大约10M个对象)。内存不是问题,所以最方便的解决方案是从带有名称的csv文件创建一个随机访问的字符串数组。

但是,我在python中做不到这一点--我得到一个错误,0维数组(字符串)不能被索引。为字符串创建随机访问容器的原生python方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-09 22:43:50

据我所知,Python中的字典平均访问时间为O(1),但列表肯定会更快。如果你的索引不是很稀疏,你可以尝试这样做:

代码语言:javascript
复制
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: a
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4945693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档