Pular para o conteúdo

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

[

Como verificar se uma string Python contém uma substring

No Python, é importante saber como verificar se uma string contém uma substring específica. Isso é útil em várias situações, como quando você está trabalhando com conteúdo de texto de um arquivo ou quando recebe uma entrada do usuário. Dependendo da presença ou ausência da substring, você pode querer executar ações diferentes em seu programa.

Neste tutorial, você aprenderá a maneira mais Pythonic de realizar essa tarefa usando o operador de pertencimento in. Além disso, você aprenderá a identificar os métodos corretos de string para casos de uso diferentes, mas relacionados.

Como confirmar que uma string Python contém outra string

Se você deseja verificar se uma string contém uma substring, use o operador in do Python. Este é o modo recomendado para confirmar a existência de uma substring em uma string:

raw_file_content = """Oi, seja bem-vindo.
Esta é um arquivo especial escondido com um segredo.
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 oferece uma maneira rápida e legível de verificar se uma substring está presente em uma string. A linha de código quase parece uma frase em inglês. Se a substring estiver presente na string, a expressão retornará True. Caso contrário, retornará False.

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

"segredo" not in raw_file_content

Nesse caso, como a substring “segredo” está presente em raw_file_content, o operador not in retornará False.

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!")

Nesse exemplo, utilizamos o operador de pertencimento para verificar se a substring “segredo” está presente em raw_file_content. Se estiver presente, uma mensagem será impressa no terminal.

Generalize seu teste removendo a distinção entre maiúsculas e minúsculas

Para generalizar seu teste e torná-lo insensível a maiúsculas e minúsculas, você pode converter tanto a string quanto a substring em letras minúsculas ou maiúsculas antes de realizá-lo:

string = "O Segredo"
substring = "segredo"
string.lower() in substring.lower()

Nesse exemplo, tanto a string quanto a substring são convertidas para letras minúsculas usando o método lower(). Isso permite que você verifique se a substring está presente na string, independentemente de estar em letras minúsculas ou maiúsculas.

Saiba mais sobre a substring

Em alguns casos, você pode precisar saber a posição exata da substring em uma string. O método find() retorna o índice da primeira ocorrência da substring em uma string:

string = "Isto é uma string de exemplo"
substring = "string"
position = string.find(substring)

Nesse exemplo, o método find() retorna o valor 8, que é o índice da primeira ocorrência da substring “string”.

Se a substring não for encontrada na string, find() retornará -1. Você pode usar essa informação em declarações condicionais para tomar decisões em seu código.

Encontre uma substring com condições usando Regex

O Python oferece suporte a expressões regulares (regex) para realizar pesquisas mais avançadas em strings. Com regex, você pode pesquisar não apenas uma substring específica, mas também padrões mais complexos.

Por exemplo, se você deseja encontrar todas as palavras de três letras em uma string, é possível usar regex para isso:

import re
string = "Eu tenho uma lista de palavras como exemplo: gato, cachorro, casa, carro"
pattern = r"\b\w{3}\b"
matches = re.findall(pattern, string)

Nesse exemplo, usamos a função findall() do módulo re para encontrar todas as palavras de três letras na string. A expressão regular r"\b\w{3}\b" representa um padrão para palavras com três caracteres. O resultado é uma lista contendo todas as palavras encontradas.

Você pode modificar o padrão regex de acordo com suas necessidades específicas. O módulo re oferece muitas funcionalidades avançadas de regex que você pode explorar para tarefas mais complexas de pesquisa de substring.

Encontre uma substring em uma coluna do pandas DataFrame

Se você estiver trabalhando com dados tabulares usando a biblioteca pandas, poderá encontrar substrings em colunas específicas de um DataFrame. Isso é útil quando você precisa pesquisar dados de um arquivo CSV, por exemplo.

Uma abordagem comum é carregar os dados em um DataFrame pandas e usar o método str.contains() para pesquisar substrings em uma coluna específica:

import pandas as pd
data = {
"Nome": ["Carlos", "Maria", "Paula", "André"],
"Descrição": ["Gosto de python", "Programo em C++", "Trabalho com Java", "Conheço JavaScript"]
}
df = pd.DataFrame(data)
substring = "python"
df[df["Descrição"].str.contains(substring)]

Nesse exemplo, carregamos um DataFrame com duas colunas: “Nome” e “Descrição”. Usamos o método str.contains() para pesquisar se a substring “python” está presente na coluna “Descrição”. O resultado é um novo DataFrame contendo apenas as linhas que contêm a substring pesquisada.

Essas são apenas algumas das funcionalidades disponíveis para pesquisar substrings em colunas de um DataFrame pandas. A biblioteca pandas oferece muitas outras ferramentas poderosas para manipulação e processamento de dados tabulares.

Conclusão

Neste tutorial, você aprendeu a verificar se uma string Python contém uma substring específica. Usando o operador in, você pode facilmente realizar essa tarefa de forma rápida e legível. Além disso, você aprendeu a generalizar seu teste, removendo a distinção entre maiúsculas e minúsculas, a usar expressões regulares para pesquisas mais avançadas e a procurar substrings em colunas de um DataFrame pandas.

Esses conhecimentos serão úteis ao trabalhar com strings e dados tabulares usando o Python. Lembre-se de praticar essas técnicas em seus próprios projetos para aprimorar suas habilidades de programação.