gpt4 book ai didi

python - 无法在 python 中的 search_slow 和 search_fast 算法中定义某些 "needle"

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:20:01 24 4
gpt4 key购买 nike

我正在尝试对 search_slow 和 search_fast 算法进行计时,以查看两者之间是否存在显着差异,并在不同计算机上运行此代码以查看时差。我已经让它们开始工作了,但是,针头似乎不起作用。

文本文件中是否有某个单词似乎并不重要,如果在 test.txt 文件中没有找到针,它应该返回 false。有点难以解释,所以我希望下面的代码能更多地解释我正在尝试做的事情:

import timeit

haystack = open('test.txt', 'r+')
haystack = list(haystack.read().split())
needle = "Hello"

def search_fast(haystack, needle):
for item in haystack:
if item == needle:
return_value = True
return True
return False


def search_slow(haystack, needle):
return_value = False
for item in haystack:
if item == needle:
return_value = True
return return_value



search_slow(haystack, needle)
print(timeit.timeit("search_slow(haystack, needle)", setup="from __main__ import search_slow, haystack, needle"))

search_fast(haystack, needle)
print(timeit.timeit("search_fast(haystack, needle)", setup="from __main__ import search_fast, haystack, needle"))

test.txt的内容是:

This is a random text file to test !

我在运行程序时得到的值是:

0.77570605278

0.187502861023

最佳答案

首先在 search_fast 中你有一个错误。这是固定版本。

def search_fast(haystack, needle):
for item in haystack:
if item == needle:
return True
return False

也就是说,您有两个可能的混淆原因。第一次尝试打印干草堆。您是否希望它有一个单词列表或一个完整的行列表?

第二个是,如果您找到针头,您没有任何代码可以做任何有趣的事情。你只要返回。那么,您怎么会知道它已被发现呢?

关于python - 无法在 python 中的 search_slow 和 search_fast 算法中定义某些 "needle",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35634454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com