首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中,哪种类型的数据结构允许快速搜索,并且效率最高?

在Python中,哪种类型的数据结构允许快速搜索,并且效率最高?
EN

Stack Overflow用户
提问于 2014-02-02 06:44:06
回答 2查看 9.1K关注 0票数 3

我有一个文本文件,其中列出了10,000,000个YouTube视频ID,如下所示:

代码语言:javascript
复制
9bZkp7q19f0
t4H_Zoh7G5A
9bZkp7q19f0
etc...

我打开文件,获取YouTube视频ID,并查找它的统计信息:https://www.googleapis.com/youtube/v3/videos?part=topicDetails,statistics&id=9bZkp7q19f0&key={API_KEY}用于第一个视频(Psy Gangnam样式),返回的API调用:

代码语言:javascript
复制
  "viewCount": "1895378471",
  "likeCount": "8110831",
  "dislikeCount": "976065",
  "favoriteCount": "0",
  "commentCount": "5100187"

我还计算自定义值,例如每个视频包含在文件中的次数,每次递增一次。

我需要将所有这些信息记录到某种类型的Python数据结构中,如下所示:

代码语言:javascript
复制
videoID    ,  viewCount, count, etc
9bZkp7q19f0, 1895378471, 10000
t4H_Zoh7G5A,  512345678, 10000

由于视频in经常在输入文件中重复,所以我不只是在数据结构中附加新行,而是需要能够找到现有的行,并增加计数的值。

我认为像"videoID“、”计数“等文本并不一定要在数据结构中,只要我知道每一列代表什么,二维类型的数组就可以了。

这个问题的要点是,我试图决定哪种类型的数据结构是最好的。性能是至关重要的。

如果数据结构中已经存在该行,那么我必须能够通过videoID快速确定键,所以如果我能够索引第一列,这将是理想的。

哪种类型的Python数据结构能够做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-02 06:51:39

将viewCount和timesPreferred的元组存储在一个dict中,使用videoID作为键。更新每个条目将在固定时间内运行。

对于额外的数据,请等到将数据放入数据库后才能获得数据。你数数的时候把东西弄得乱七八糟是没有意义的。

票数 6
EN

Stack Overflow用户

发布于 2014-02-02 06:56:29

一份字典的清单应该可以。但是,为了获得最佳性能,我将字典列表存储在“腌制”文件中,使用的是cpickle (一个更快版本的泡菜)。

http://docs.python.org/2/library/pickle.html#pickle-example

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21507870

复制
相关文章

相似问题

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