python中列表比词典的查找操作插入要慢很多?对比代码如下,dic为词典,dic2为列表.corpus_for_ass3train-EM.txt是我的训练语料,大概20000行,词汇量(不算重复)为55000+左右.dic的话基本是秒速统计完毕,di
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 03:38:02
![python中列表比词典的查找操作插入要慢很多?对比代码如下,dic为词典,dic2为列表.corpus_for_ass3train-EM.txt是我的训练语料,大概20000行,词汇量(不算重复)为55000+左右.dic的话基本是秒速统计完毕,di](/uploads/image/z/9371955-3-5.jpg?t=python%E4%B8%AD%E5%88%97%E8%A1%A8%E6%AF%94%E8%AF%8D%E5%85%B8%E7%9A%84%E6%9F%A5%E6%89%BE%E6%93%8D%E4%BD%9C%E6%8F%92%E5%85%A5%E8%A6%81%E6%85%A2%E5%BE%88%E5%A4%9A%3F%E5%AF%B9%E6%AF%94%E4%BB%A3%E7%A0%81%E5%A6%82%E4%B8%8B%2Cdic%E4%B8%BA%E8%AF%8D%E5%85%B8%2Cdic2%E4%B8%BA%E5%88%97%E8%A1%A8.corpus_for_ass3train-EM.txt%E6%98%AF%E6%88%91%E7%9A%84%E8%AE%AD%E7%BB%83%E8%AF%AD%E6%96%99%2C%E5%A4%A7%E6%A6%8220000%E8%A1%8C%2C%E8%AF%8D%E6%B1%87%E9%87%8F%EF%BC%88%E4%B8%8D%E7%AE%97%E9%87%8D%E5%A4%8D%EF%BC%89%E4%B8%BA55000%2B%E5%B7%A6%E5%8F%B3.dic%E7%9A%84%E8%AF%9D%E5%9F%BA%E6%9C%AC%E6%98%AF%E7%A7%92%E9%80%9F%E7%BB%9F%E8%AE%A1%E5%AE%8C%E6%AF%95%2Cdi)
python中列表比词典的查找操作插入要慢很多?对比代码如下,dic为词典,dic2为列表.corpus_for_ass3train-EM.txt是我的训练语料,大概20000行,词汇量(不算重复)为55000+左右.dic的话基本是秒速统计完毕,di
python中列表比词典的查找操作插入要慢很多?
对比代码如下,dic为词典,dic2为列表.
corpus_for_ass3train-EM.txt是我的训练语料,大概20000行,词汇量(不算重复)为55000+左右.dic的话基本是秒速统计完毕,dic2取要用3分钟左右.
我觉得是由于词典使用hash表而list每次in操作都要重头查找所以慢.
求更准确更详尽的分析
dic = {}
dic2 = []
trainFile = open("corpus_for_ass3train-EM.txt")
lines = trainFile.readlines()
for line in lines:
if len(line.strip()) == 0: continue
words = line.split()
for word in words:
if not word in dic:
dic[word] = 1
else:
dic[word] += 1
if not word in dic2:
dic2.append(word)
python中列表比词典的查找操作插入要慢很多?对比代码如下,dic为词典,dic2为列表.corpus_for_ass3train-EM.txt是我的训练语料,大概20000行,词汇量(不算重复)为55000+左右.dic的话基本是秒速统计完毕,di
翻任意一本数据结构和算法分析的书,里面都有顺序表查找和Hash表查找的例子,以及理论分析.顺序表的话平均查找时间为O(n),hash表查找时间为O(1).还有插入的时间没有算在内.
python的字典操作的详细实现,我查过,在《代码之美》一书里面有python的设计人员的详细分析.我们几句话讲不清楚.
还有就是你的程序如果只是希望记录不重复的单词,用set对象代码可以更好看一点.