python str.contains 不包含
时间: 2023-05-31 14:20:40 浏览: 733
### 回答1:
Python中没有str.contains函数,但是可以使用in关键字来判断一个字符串是否包含另一个字符串。如果一个字符串不包含另一个字符串,可以使用not in关键字。例如:
```python
s = 'hello world'
if 'hello' in s:
print('包含hello')
if 'python' not in s:
print('不包含python')
```
输出结果为:
```
包含hello
不包含python
```
### 回答2:
Python中的str.contains()函数是用于判断字符串是否包含某个字符或字符串,如果包含,则返回True,否则返回False。然而,有时候我们需要判断字符串是否不包含某个字符或字符串,此时我们可以使用“~”符号来取反判断结果。
具体地说,我们可以在str.contains()函数中使用“~”符号来检查字符串是否不包含某个字符或字符串。例如,下面的代码片段就是一个例子:
```
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'baz'], 'B': ['apple', 'orange', 'banana']})
mask = ~df['A'].str.contains('o')
print(df[mask])
```
在这个例子中,我们使用pandas库创建了一个包含两个列的DataFrame。然后,我们使用str.contains()函数检查'A'列中的每个字符串是否包含字符'o',并将结果存储在一个布尔型数组中。接着,我们使用“~”符号来取反这个数组,得到不包含字符'o'的行的索引。最后,我们将这个索引传递给DataFrame的索引器,从而得到不包含字符'o'的所有行。
需要注意的是,使用“~”符号来取反布尔型数组时需要加上括号。否则,可能会因为优先级问题导致结果不符合预期。另外,如果需要判断字符串是否不包含多个字符或字符串,则可以使用正则表达式来实现。具体的用法可以参考Python的re模块文档。
### 回答3:
Python中的str.contains()方法不是一个内置的字符串方法,而是属于pandas库中的DataFrame和Series对象的方法。它的作用是在DataFrame和Series对象的字符串列中查找某个子字符串是否存在,并返回一个布尔值Series,表示每个元素中是否包含指定的子字符串。
但是,这个方法的名称可能会有些误导,因为它并不是“不包含”的意思。如果想要查找不包含指定子字符串的元素,应该使用str.contains()方法的反向方法 ~(即在方法名称前加上"~"号)~ ,即str.contains()的invert参数,将其设置为True。
例如,下面的代码将返回一个Series,表示列a中是否每个元素的字符串都不包含'hello'。
```
import pandas as pd
df = pd.DataFrame({'a': ['hello', 'world', 'hi', 'goodbye', 'greetings']})
result = ~df['a'].str.contains('hello')
print(result)
```
输出为:
```
0 False
1 True
2 True
3 True
4 True
Name: a, dtype: bool
```
从输出结果可以看出,df中第一个元素'hello'包含了'hello'子字符串,因此返回False;而其他元素中都不包含'hello',因此返回True。
总之,str.contains()方法是一个非常有用的字符串搜索方法,但其名称可能会在某些情况下会引起歧义。对于不包含的情况,可以通过将方法的invert参数设置为True来找到不包含指定子字符串的元素。
阅读全文