<p>我无法回答你的问题,但我做了一个小测试,对它的基础提出了质疑</p>
<p>正如我们可以从输出中推断的那样,结果是非常随机的,在某些情况下,一个平均比另一个快,而另一个则相反</p>
<pre><code>import time
import statistics
somestring="climate change is a big problem. However emissions are still rising"
sometopics=["climate","change","problem","big","rising"]
def comparelistoftopicstokw(mystring,somelistoftopics):
result = [element for element in somelistoftopics if(element in mystring)]
return result
for i in range(10):
print(f"Average time to execute 1 iteration (100000 iterations). Round {i + 1}:")
time1average = []
for i in range(100000):
start1 = time.time()
result = [element for element in sometopics if(element in somestring)]
time1average.append(time.time() - start1)
print(statistics.mean(time1average))
time2average = []
for i in range(100000):
start2 = time.time()
comparelistoftopicstokw(somestring,sometopics)
time2average.append(time.time() - start2)
print(statistics.mean(time2average))
print("")
</code></pre>
<p>输出:</p>
<pre><code>Average time to execute 1 iteration (100000 iterations). Round 1:
3.879823684692383e-06
5.041525363922119e-06
Average time to execute 1 iteration (100000 iterations). Round 2:
4.478754997253418e-06
5.097501277923584e-06
Average time to execute 1 iteration (100000 iterations). Round 3:
3.9185094833374025e-06
4.177823066711426e-06
Average time to execute 1 iteration (100000 iterations). Round 4:
4.212841987609863e-06
4.6886253356933596e-06
Average time to execute 1 iteration (100000 iterations). Round 5:
3.580739498138428e-06
3.840360641479492e-06
Average time to execute 1 iteration (100000 iterations). Round 6:
3.070487976074219e-06
4.423313140869141e-06
Average time to execute 1 iteration (100000 iterations). Round 7:
3.0085206031799318e-06
3.401658535003662e-06
Average time to execute 1 iteration (100000 iterations). Round 8:
2.937157154083252e-06
4.46035623550415e-06
Average time to execute 1 iteration (100000 iterations). Round 9:
3.5696911811828613e-06
3.5602593421936035e-06
Average time to execute 1 iteration (100000 iterations). Round 10:
2.7422666549682615e-06
3.158261775970459e-06
</code></pre>