def process_file_path_list(self, path_list, total_tf_map):
for path_ in path_list:
tf_dict = self.process_file(path_) # extract word in file
for (key, value) in tf_dict.items():
# update dict
if key in total_tf_map.keys():
total_tf_map[key] += value
else:
total_tf_map[key] = value total_tf_map[key] = value
单次查询中:看来list 就是O(n)的;而set做了去重,本质应该一颗红黑树(猜测,STL就是红黑树),复杂度O(logn);dict类似对key进行了hash,然后再对hash生成一个红黑树进行查找,其查找复杂其实是O(logn),并不是所谓的O(1)。O(1)只是理想的实现,实际上很多hash的实现是进行了离散化的。dict比set多了一步hash的过程,so 它比set慢,不过差别不大。
so,如果是要频繁的查找,请使用set吧!
相关文章: