如何检查字符串a是否是一个不等于字符串b的子字符串?
问题描述:
我知道,如果我们想知道串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的开头,那么它不起作用:) –