Pular para o conteúdo

Como usar o método str.contains em Python?

[

Como verificar se uma string em Python contém uma substring

Se você precisa verificar se uma string contém uma substring, pode usar o operador de associação in do Python. Em Python, esta é a forma recomendada de confirmar a existência de uma substring em uma string:

raw_file_content = """Olá e bem-vindo.
Esta é um arquivo especial oculto com um segredo SECRETO.
Eu não quero contar o Segredo para você,
mas quero secretamente dizer que eu tenho um."""
"segredo" in raw_file_content

O operador in fornece uma maneira rápida e legível de verificar se uma substring está presente em uma string. Você pode perceber que a linha de código quase se lê em inglês.

Observação: Se você deseja verificar se a substring não está na string, pode usar o operador not in:

"segredo" not in raw_file_content

Quando você usa o in, a expressão retorna um valor booleano:

  • True se o Python encontrar a substring
  • False se o Python não encontrar a substring

Você pode usar essa sintaxe intuitiva em declarações condicionais para tomar decisões no seu código:

if "segredo" in raw_file_content:
print("Encontrado!")

Neste trecho de código, você usa o operador de associação para verificar se "segredo" é uma substring de raw_file_content. Se for, você imprimirá uma mensagem no terminal.

Generalize sua verificação removendo a sensibilidade de caso

Em alguns casos, você pode querer fazer uma verificação de substring que seja case insensitive, ou seja, que não diferencie entre letras maiúsculas e minúsculas. Para fazer isso, você pode converter tanto a string quanto a substring para letras minúsculas ou maiúsculas antes de realizar a verificação.

raw_file_content = """Olá e bem-vindo.
Esta é um arquivo especial oculto com um segredo SECRETO.
Eu não quero contar o Segredo para você,
mas quero secretamente dizer que eu tenho um."""
"segredo" in raw_file_content.lower()

Ao converter ambas as strings para letras minúsculas usando o método lower(), você garante que a verificação será case insensitive. Portanto, a saída será True, mesmo que a substring esteja em um formato diferente de maiúsculas e minúsculas.

Aprenda mais sobre a substring

O método in é muito útil para verificar a existência de uma substring em uma string, mas e se você precisar saber a posição exata da substring dentro da string?

Você pode usar o método find() para encontrar a posição da primeira ocorrência da substring na string. O método find() retorna o índice da substring se ela for encontrada ou -1 se ela não for encontrada.

raw_file_content = """Olá e bem-vindo.
Esta é um arquivo especial oculto com um segredo SECRETO.
Eu não quero contar o Segredo para você,
mas quero secretamente dizer que eu tenho um."""
position = raw_file_content.find("segredo")
if position != -1:
print(f"A substring 'segredo' começa na posição {position}")
else:
print("A substring 'segredo' não foi encontrada")

Neste exemplo, o método find() é usado para encontrar a posição exata da substring "segredo" dentro da string raw_file_content. Se a substring for encontrada, o índice será impresso. Caso contrário, será exibida a mensagem de que a substring não foi encontrada.

Encontre uma substring em uma coluna de DataFrame pandas

Se você estiver trabalhando com dados tabulares e precisar pesquisar substrings em uma coluna específica, pode usar o método str.contains() do pandas. Este método retornará um objeto booleano indicando se cada elemento da coluna contém ou não a substring.

import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'City': ['New York', 'San Francisco', 'Seattle']}
df = pd.DataFrame(data)
contains_york = df['City'].str.contains('York')
print(df[contains_york])

Neste exemplo, o DataFrame df contém informações sobre pessoas e suas cidades. O método str.contains() é usado para verificar se a coluna 'City' contém a substring 'York'. Em seguida, a linha correspondente a essa condição é impressa.

Conclusão

A verificação de substrings é uma tarefa comum em Python e pode ser realizada usando o operador de associação in, juntamente com métodos específicos de string ou pandas, dependendo do contexto da sua aplicação. Agora você sabe como verificar se uma string contém uma substring e como encontrar a posição exata da substring dentro da string. Essas técnicas serão úteis em muitos projetos de programação Python.