我知道,如果我們想知道串a
是否包含在b
我們可以使用:如何檢查字符串a是否是一個不等於字符串b的子字符串?
a in b
當等於b,上面明示仍返回True
。我想要一個表達式,當a == b
將返回False
並返回True
當a
是b
的子串。所以我用下面的表達式:
a in b and a != b
我只是想知道Python中是否有一個簡單的表達式,以同樣的方式工作?
我知道,如果我們想知道串a
是否包含在b
我們可以使用:如何檢查字符串a是否是一個不等於字符串b的子字符串?
a in b
當等於b,上面明示仍返回True
。我想要一個表達式,當a == b
將返回False
並返回True
當a
是b
的子串。所以我用下面的表達式:
a in b and a != b
我只是想知道Python中是否有一個簡單的表達式,以同樣的方式工作?
不知道直接字符串比較如何有效的在Python,但假設他們是爲O(n),這應該是合理有效的,仍然可讀:
len(a) < len(b) and a in b
喜歡其他的答案它也爲O(n),但長度操作應該是O(1)。它也應該更適合邊緣情況(例如,比b大)
這將是一個簡短的答案,但它是什麼。你擁有的就足夠了。
雖然可能有其他的選擇,但你做的方式很容易理解,比其他任何東西都簡單易讀(當然這對每個人都是主觀的)。 IMO Python中一個更簡單的表達式,其工作方式與不存在相同。這只是我對這個問題的個人觀點。我通常鼓勵遵循KISS:
大多數系統,如果他們保持 簡單,而不是複雜化最好的作品裏KISS原則狀態;因此簡化應該是設計中的關鍵目標,應避免不必要的複雜性。
舉個例子,有in
和==
使用時,因爲很多人會認爲這是(a1 in b) != a1
,至少第一眼對方的回答是不明確的and
什麼不同,和鏈接可能會造成混淆。
這很簡單明瞭。 –
如果a不在b的開頭,你可以嘗試'b.find(a)> 0'。如果a可能在b的開頭,那麼它不起作用:) –