Python不是我最好的語言,所以我並不擅長尋找對我的一些問題最有效的解決方案。我有一個非常大的字符串(來自30 MB文件),我需要檢查該文件是否包含較小的子字符串(該字符串只有幾十個字符)。我現在這樣做的方式是:Python高效的方法來檢查是否非常大的字符串包含子字符串
if small_string in large_string:
# logic here
但是這似乎是非常低效的,因爲它會檢查文件中每個可能的字符序列。我知道在換行符上只有一個完全匹配,所以將列表中的文件讀入並遍歷該列表以匹配會更好嗎?
編輯:爲了澄清一些混亂的「匹配上只有一個換行」,這裏有一個例子:
small_string = "This is a line"
big_string = "This is a line\nThis is another line\nThis is yet another"
如果我沒有錯,在關鍵字將檢查所有的序列,而不僅僅是每一行。
你是什麼意思,「在換行符上完全匹配」? –
你想要有效利用空間(記憶)或找到比賽的速度效率嗎?不同的模式匹配算法在這方面具有不同的特徵。 –
@Jon:您提供的示例將停止在第一行搜索。 –