class NoisyString(str):
def __contains__(self, other):
print('testing if "{0}" in "{1}"'.format(other, self))
return super(NoisyString, self).__contains__(other)
ns = NoisyString('a string with a substring inside')
而现在。
>>> 'substring' in ns
testing if "substring" in "a string with a substring inside"
True
同时,避免使用以下字符串方法。
>>> '**foo**'.index('foo')
2
>>> '**foo**'.find('foo')
2
>>> '**oo**'.find('foo')
-1
>>> '**oo**'.index('foo')
Traceback (most recent call last):
File "", line 1, in
'**oo**'.index('foo')
ValueError: substring not found
"foo" in "foobar"
True
"foo" in "Foobar"
False
"foo" in "Foobar".lower()
True
"foo".capitalize() in "Foobar"
True
"foo" in ["bar", "foo", "foobar"]
True
"foo" in ["fo", "o", "foobar"]
False
你可以使用
in
运算符。如果只是一个子串搜索,你可以使用
string.find("substring")
。你必须对
find
,index
, 和in
有点小心,因为它们是子串搜索。换句话说,这个。它将打印
在字符串中发现'is'。
同样,if "is" in s:
将评估为True
。这可能是你想要的,也可能不是。如果大海捞针:
是正常的用法,正如@Michael所说--它依赖于in
操作符,比方法调用更易读,更快。如果你真的需要一个方法而不是一个运算符(例如,为一个非常奇特的排序做一些奇怪的
key=
?),那就是'haystack'.__contains__
。 但由于你的例子是在if
中使用的,我想你并不是真的想说什么;-)。) 直接使用特殊方法并不是好的形式(也不便于阅读,更没有效率)--它们应该通过委托给它们的操作符和内置程序来使用。是的,但是 Python 有一个比较操作符,你应该用它来代替,因为语言打算使用它,而且其他程序员会期望你使用它。 这个关键字是
in
,它被用作比较操作符。原题所问的反义词(补语)是 "不在"。
这在语义上与 "not 'foo' in 'foo'`,但它的可读性更强,并且作为一种可读性改进在语言中明确规定。
避免使用
__contains__
、find
和index
。说好的,这里是 "包含 "方法。
返回 "True"。 你也可以从superstring的实例中调用这个函数。
但不要'。 以下划线开头的方法在语义上被认为是私有的。 使用这种方法的唯一原因是在扩展
in
和not in
功能时(例如 如果子类str
)。)而现在。
同时,避免使用以下字符串方法。
其他语言可能没有直接测试子串的方法,因此您必须使用这些类型的方法,但在 Python 中,使用
in
比较运算符会更有效。性能比较
我们可以比较各种方法来完成同一个目标。
现在我们看到,使用 "in "比其他方法快得多。 做一个等价操作的时间更少,效果更好。
<!--
每个人都喜欢一个好的dataviz.这里有一个使用pandas和matplotlib的dataviz。 这里有一个使用pandas和matplotlib的。
->
in
Python字符串和列表下面是几个有用的例子,关于 "进 "的方法,不言自明。
注意事项。 列表是可迭代的,"in "方法对可迭代的东西起作用,而不仅仅是字符串。
所以显然,对于向量方面的比较,没有类似的方法。 一个显而易见的 Python 方法是:{{{7344992}}。
如果你对`"blah" 但希望它是一个函数/方法调用,你可以这样做。
在Python中所有的运算符都可以在[运算符模块][1]中或多或少的找到,包括
in
。[1]: https://docs.python.org/3.5/library/operator.html#operator.contains
你可以使用
y.count()
。它将返回一个子字符串在一个字符串中出现的次数的整数值。
例如:
。
这是你的答案。
用于检查是否是假的。
或:
你可以使用正则表达式来获取出现次数。