Pular para o conteúdo

Como usar a função 'contains' no Python?

[

Como Verificar se uma String em Python Contém outra String

por Martin Breuss

Como Confirmar que uma string em Python Contém outra String

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 especial oculto com um segredo SECRETO.
Eu não quero te contar O Segredo,
mas eu quero secretamente te dizer que eu tenho um."""
"segredo" 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ê como inglês.

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

"segredo" not in raw_file_content

Como a substring “segredo” está presente em raw_file_content, o operador not in retorna False.

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 "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, então você irá imprimir uma mensagem no terminal.

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

Às vezes, você precisa verificar se uma string contém uma substring, independentemente de letras maiúsculas e minúsculas. Você pode fazer isso convertendo ambos para letras minúsculas ou maiúsculas antes de realizar a verificação.

Por exemplo, vamos verificar se uma string contém a substring “python”, independentemente de como ela está escrita:

text = "Eu amo Python!"
"python" in text.lower() # Retorna True independentemente da caixa

Neste exemplo, primeiro usamos o método lower() para converter todas as letras em minúsculas na string text. Em seguida, usamos o operador de associação in para verificar se a substring "python" está presente na string. Uma vez que a palavra “Python”, com a primeira letra maiúscula, foi convertida em minúscula, a verificação retorna True.

Você também pode usar o método upper() para converter todas as letras em maiúsculas antes de realizar a verificação.

Aprenda Mais Sobre a Substring

Em alguns casos, você precisa não só verificar se uma string contém uma substring, mas também determinar a posição em que a substring começa na string original. Para isso, você pode usar o método find():

text = "O tutorial do Python é incrível!"
substring = "Python"
position = text.find(substring)
print(position) # Saída: 13

Neste exemplo, usamos o método find() para encontrar a posição em que a substring "Python" começa na string text. O método retorna o índice da primeira ocorrência da substring na string original. Se a substring não for encontrada, o método retorna -1.

Além disso, você pode usar o método index() para encontrar a posição em que a primeira ocorrência de uma substring começa na string original. A diferença entre os métodos find() e index() é que find() retorna -1 quando a substring não é encontrada, enquanto index() gera uma exceção ValueError.

Encontre uma Substring com Condições Usando Regex

Às vezes, você precisa verificar se uma string contém uma substring com base em certas condições. Para isso, você pode usar expressões regulares, também conhecidas como regex.

Por exemplo, vamos verificar se uma string contém uma sequência de dígitos consecutivos:

import re
text = "A sequência 12345 é uma sequência de números."
pattern = r"\d+"
if re.search(pattern, text):
print("A string contém uma sequência de dígitos consecutivos!")

Neste exemplo, importamos o módulo re para trabalhar com expressões regulares. Usamos re.search() para procurar uma ocorrência da sequência de dígitos consecutivos (representada pela regex \d+) na string text. Se a sequência for encontrada, imprimimos uma mensagem.

Encontre uma Substring em uma Coluna do DataFrame do pandas

Se você estiver trabalhando com manipulação de dados e precisar encontrar substrings em uma coluna de um DataFrame do pandas, existem métodos específicos que você pode usar.

Por exemplo, vamos supor que temos o seguinte DataFrame:

import pandas as pd
data = {
"Nome": ["João", "Maria", "Carlos", "Ana"],
"Idade": [25, 30, 35, 40],
"Email": ["joao@gmail.com", "maria@yahoo.com", "carlos@hotmail.com", "ana@gmail.com"]
}
df = pd.DataFrame(data)

Agora, queremos verificar se a coluna “Email” contém a substring “@gmail”:

contains_gmail = df["Email"].str.contains("@gmail")
print(contains_gmail)

Neste exemplo, usamos o método str.contains() do pandas para verificar se a coluna “Email” contém a substring “@gmail”. O método retorna uma série booleana indicando se cada elemento contém a substring.

Conclusão

Verificar se uma string contém uma substring é uma tarefa comum na programação Python. Usando o operador de associação in, você pode verificar de forma rápida e legível se uma substring está presente em uma string. Além disso, você pode generalizar sua verificação, removendo a sensibilidade a maiúsculas e minúsculas, aprender mais sobre a substring e como encontrá-la em uma coluna de um DataFrame do pandas. Agora você tem todas as ferramentas necessárias para lidar com essa tarefa de forma eficiente em seus projetos Python.