在Python中,哪种类型的数据结构允许快速搜索并最有效?
我有一个文本文件,其中列出了10000000个YouTube视频ID,如下所示:在Python中,哪种类型的数据结构允许快速搜索并最有效?,python,data-structures,Python,Data Structures,我有一个文本文件,其中列出了10000000个YouTube视频ID,如下所示: 9bZkp7q19f0 t4H_Zoh7G5A 9bZkp7q19f0 etc... videoID , viewCount, count, etc 9bZkp7q19f0, 1895378471, 10000 t4H_Zoh7G5A, 512345678, 10000 我打开文件,获取YouTube视频ID,然后查找,查看其统计数据: {API_KEY}对于第一个视频(Psy江南风格),API调用返
9bZkp7q19f0
t4H_Zoh7G5A
9bZkp7q19f0
etc...
videoID , viewCount, count, etc
9bZkp7q19f0, 1895378471, 10000
t4H_Zoh7G5A, 512345678, 10000
我打开文件,获取YouTube视频ID,然后查找,查看其统计数据:
{API_KEY}对于第一个视频(Psy江南风格),API调用返回:
"viewCount": "1895378471",
"likeCount": "8110831",
"dislikeCount": "976065",
"favoriteCount": "0",
"commentCount": "5100187"
我还计算自定义值,例如每个视频包含在文件中的次数,每次递增一次
我需要将所有这些信息记录到某种类型的Python数据结构中,如下所示:
9bZkp7q19f0
t4H_Zoh7G5A
9bZkp7q19f0
etc...
videoID , viewCount, count, etc
9bZkp7q19f0, 1895378471, 10000
t4H_Zoh7G5A, 512345678, 10000
由于VideoID经常在输入文件中重复,因此我不仅要在数据结构中添加新行,还需要能够找到现有行,并增加count的值
我认为像“videoID”、“count”这样的文本实际上不必在数据结构中,只要我知道每列代表什么,二维数组就可以了
这个问题的重点是我试图决定哪种类型的数据结构最好。性能至关重要
我必须能够通过videoID键快速确定数据结构中是否已经存在该行,因此如果我能够索引第一列,那将是理想的
什么类型的Python数据结构可以实现这一点?使用videoID作为键在dict中存储viewCount和TimePreferred的元组。更新每个条目将以固定时间运行
对于额外的数据,请等到将数据放入数据库后再获取。在你数数的时候把东西弄得乱七八糟是没有意义的。一份字典清单就可以了。但是,为了获得最佳性能,我会使用cpickle(pickle的更快版本)将字典列表存储在“pickle”文件中
我首先将其编码为直接使用SQL数据库,然后跳过中间步骤。然后确定性能是否太差,并进行优化。