我有一个字典单词列表和一个句子列表,现在我需要检查每个单词(都不一样(,如果在中每个 然而,我想知道如果我使用两个循环是否会花费更多的时间,有没有更好的方法可以完成这项工作,使用dict呢?word_list = ["人", "天", "地"] #over 100 ords in actual dict
input_file = ["你是不是经常也告诉自己", "不管发生什么事情", "都要微笑着面对生活"] #over 1000 sentences
output = []
for line in input_file:
for word in word_list:
if word in line:
output.append(word)
展开我的评论:
给定长度为m
的单词列表和具有n
行且平均行长为l
的文件,以下适用。
要将一行转换为一组单词,您必须对其进行一次迭代:O(l
(。
因此,要将每一行变成一组单词,就会在O(n * l
(中。
要检查一个单词是否在该单词集中,您需要执行集合查找:O(1
(。
因此,要检查,每个单词都将在O(m
(中。
为此,对于,每个行都将位于O(n * m
(中。