我知道如果我们想知道字符串 a
是否包含在 b
中,我们可以使用以下方法:
a in b
当a等于b时,上述表达式仍然返回True。我希望有一个表达式,在a==b时返回False,并且当a是b的子字符串时返回True。因此我使用了以下表达式:
a in b and a != b
我想知道Python中是否有一种更简单的表达方式,可以以相同的方式工作?
我知道如果我们想知道字符串 a
是否包含在 b
中,我们可以使用以下方法:
a in b
a in b and a != b
我想知道Python中是否有一种更简单的表达方式,可以以相同的方式工作?
不确定在Python中直接字符串比较的效率如何,但是假设它们是O(n),这应该是相当高效且易读的:
len(a) < len(b) and a in b
and
没有任何不同,而使用in
和==
时链接可能会令人困惑,因为许多人会将其视为(a1 in b) != a1
,至少乍一看是这样。b.find(a) > 0 or b.startswith(a) and len(b) > len(a)
我并不是说这是最好的答案,只是另一种解决方案。原帖作者的陈述和任何其他答案一样好。被采纳的答案也很好。但这个答案确实可行,并展示了解决问题的不同方法。
b.find(a) > 0
。但如果a可能在b的开头,那么这个方法就行不通了 :) - Jean-François Fabre