【发布时间】:2021-10-24 21:35:44
【问题描述】:
我想知道,为什么在python中查找较大字符串中的特定字符串时,查找字符串比查找列表要快得多。
str_test = "some string words "*100
def search_in_string():
if "with" in (str_test):
return True
ls_test = ["some", "string" "words"]*100
def search_in_list():
if "with" in (ls_test):
return True
import timeit
print(timeit.timeit(search_in_string))
### 0.3497438999984297
print(timeit.timeit(search_in_list))
### 2.4319190999995044
看起来在字符串中的搜索速度快了将近 7 倍
【问题讨论】:
-
@CoryKramer 我提出。 "Ha ha, nested for loops go brrrrrrrrrrrr…"
-
您的问题标题和问题正文不匹配。你的标题是问哪个更快,但正文断言子字符串搜索更快,并要求解释。你想问什么?
-
第二个是遍历列表中的所有项目并比较每个项目的相等性(正如其他人所说,它基本上是嵌套的 for 循环 - 遍历该列表中的每个元素并逐个字符地比较它到
i)。第一个是使用子字符串检查,它可以在线性方式(散列)中完成(并且可能已经完成)。
标签: python arrays string list search