Pular para o conteúdo

Como usar corretamente o método str.contains?

[

Como Verificar se uma String Python Contém uma Substring

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

raw_file_content = """Oi, seja bem-vindo.
Esta é um arquivo oculto especial com um segredo SECRETO.
Eu não quero te contar O Segredo,
mas eu quero secretamente te dizer que eu tenho um."""
"secreto" in raw_file_content

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

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

"secreto" not in raw_file_content

Quando você usa 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 em seu código:

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

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

Generalizando a Verificação Removendo a Sensibilidade a Maiúsculas e Minúsculas

Por padrão, o operador de associação in diferencia entre maiúsculas e minúsculas. Isso significa que, se a substring que você está procurando estiver em uma combinação diferente de maiúsculas e minúsculas da string em que você está buscando, o operador in retornará False.

Se você quiser generalizar a verificação e remover a sensibilidade a maiúsculas e minúsculas, você pode usar o método lower() para converter a string e a substring para letras minúsculas antes de realizar a verificação.

string = "Python é incrível!"
substring = "Python"
if substring.lower() in string.lower():
print("Encontrado!")

Neste exemplo, o método lower() é usado para converter tanto a string quanto a substring em letras minúsculas antes de verificar se a substring está presente na string. Isso garante que a verificação seja feita sem levar em consideração a capitalização das letras.

Saiba Mais Sobre a Substring

Além de verificar a existência de uma substring em uma string, você também pode querer saber mais sobre essa substring, como a posição em que ela ocorre ou o número de ocorrências.

Para encontrar a posição da primeira ocorrência de uma substring em uma string, você pode usar o método find() ou index(). Ambos os métodos retornam o índice da primeira ocorrência da substring, ou -1 se a substring não for encontrada.

sentence = "O gato pulou a cerca. O gato é rápido."
substring = "gato"
position = sentence.find(substring)
print(f"A substring '{substring}' ocorre pela primeira vez na posição {position}.")
# Output:
# A substring 'gato' ocorre pela primeira vez na posição 2.

Neste exemplo, o método find() é usado para encontrar a posição da primeira ocorrência da substring "gato" na string sentence. A posição é então impressa no terminal.

O método index() funciona de maneira semelhante ao find(), mas lançará uma exceção ValueError se a substring não for encontrada em vez de retornar -1. Portanto, é importante lidar com essa exceção ao usar o método index().

Para contar o número de ocorrências de uma substring em uma string, você pode usar o método count().

sentence = "O gato pulou a cerca. O gato é rápido."
substring = "gato"
count = sentence.count(substring)
print(f"A substring '{substring}' ocorre {count} vezes na string.")
# Output:
# A substring 'gato' ocorre 2 vezes na string.

Neste exemplo, o método count() é usado para contar o número de ocorrências da substring "gato" na string sentence. O contador é então impresso no terminal.

Esses métodos extras fornecem mais informações sobre a substring além de apenas verificar se ela está presente na string.

Encontrando uma Substring em uma Coluna de um DataFrame do pandas

Se você estiver trabalhando com dados tabulares em Python, é provável que você esteja usando a biblioteca pandas para lidar com um objeto DataFrame. Se você precisar encontrar uma substring em uma coluna específica desse DataFrame, você pode usar a função str.contains().

import pandas as pd
data = {
"Nome": ["João", "Maria", "Ana", "Pedro"],
"Idade": [25, 30, 20, 35],
"Profissão": ["Engenheiro", "Médica", "Estudante", "Advogado"]
}
df = pd.DataFrame(data)
substring = "Eng"
result = df[df["Profissão"].str.contains(substring, case=False)]
print(result)
# Output:
# Nome Idade Profissão
# 0 João 25 Engenheiro

Neste exemplo, um DataFrame é criado com três colunas: “Nome”, “Idade” e “Profissão”. A coluna “Profissão” é então verificada para encontrar linhas que contenham a substring “Eng”. O resultado é um novo DataFrame contendo apenas as linhas onde a substring é encontrada na coluna “Profissão”.

Isso é particularmente útil ao trabalhar com grandes conjuntos de dados e você precisa filtrar os dados com base em substrings específicas.

Conclusão

Verificar se uma string contém uma substring é uma tarefa comum na programação Python. Neste artigo, você aprendeu a utilizar o operador de associação in do Python para realizar essa verificação, bem como como generalizar a verificação removendo a sensibilidade a maiúsculas e minúsculas.

Você também aprendeu a identificar mais informações sobre uma substring, como sua posição na string ou o número de ocorrências, e a encontrar uma substring em uma coluna específica de um DataFrame do pandas.

Essas técnicas serão úteis quando você estiver trabalhando com análise de texto, manipulação de dados ou qualquer outra tarefa que envolva a busca por substrings em strings. Esperamos que você tenha achado este tutorial útil e que seja capaz de aplicar esses conceitos em seus próprios projetos Python.