Pular para o conteúdo

Como verificar se uma string contém um determinado valor em Python 3?

CodeMDD.io

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

Se você precisa verificar se uma string contém uma substring em Python, você pode usar o operador in. Este é o modo recomendado e mais Pythonico de confirmar a existência de uma substring em uma string. Além disso, você pode aprender a identificar os métodos de string corretos para diferentes casos de uso relacionados.

Para exemplificar, considere a seguinte string:

raw_file_content = """Oi! Bem-vindo.
Este é um arquivo especial com um segredo SECRETO.
Eu não quero te contar O Segredo,
mas eu quero te dizer secretamente que eu tenho um."""

Para verificar se a substring “segredo” está presente nessa string, você pode usar o operador in:

"segredo" in raw_file_content

O retorno será True se a substring estiver presente, e False caso contrário.

Se você quiser verificar se a substring NÃO está presente na string, você pode usar o operador not in da seguinte forma:

"segredo" not in raw_file_content

O retorno será False se a substring estiver presente, e True caso contrário.

Esse operador retorna um valor booleano, o que significa que você pode utilizá-lo em declarações condicionais para tomar decisões em seu código. Por exemplo:

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

Neste trecho de código, usamos o operador in para verificar se a substring “segredo” está presente em raw_file_content. Se estiver, então imprimimos uma mensagem no terminal.

Dessa forma, você pode utilizar o operador in para verificar se uma string contém uma substring em Python. Essa é uma maneira rápida, legível e Pythonica de realizar essa tarefa.

Generalizando a verificação removendo a sensibilidade a maiúsculas e minúsculas

Em alguns casos, você pode querer verificar se uma string contém uma substring, mas levando em consideração tanto as letras maiúsculas quanto as minúsculas. Para isso, você pode transformar ambas as strings em letras minúsculas ou maiúsculas e, em seguida, realizar a verificação.

Considere o seguinte exemplo:

string1 = "Hello, World!"
string2 = "world"
if string2.lower() in string1.lower():
print("Encontrado!")

Neste exemplo, convertemos tanto string1 quanto string2 para letras minúsculas usando o método lower(). Em seguida, utilizamos o operador in para verificar se a substring string2 está presente na string string1, ignorando a sensibilidade a maiúsculas e minúsculas.

Aprenda mais sobre a substring

Em Python, existem outros métodos de string que podem ser úteis ao lidar com substrings. Alguns desses métodos incluem:

  • find(): retorna o índice da primeira ocorrência da substring na string ou -1 caso a substring não seja encontrada.
  • index(): retorna o índice da primeira ocorrência da substring na string ou gera um erro se a substring não for encontrada.
  • startswith(): verifica se a string começa com a substring especificada.
  • endswith(): verifica se a string termina com a substring especificada.

A exploração desses métodos pode fornecer maior flexibilidade ao lidar com substrings e auxiliar na tomada de decisões em seu código.

Usando expressões regulares para encontrar uma substring com condições

Outra maneira de encontrar uma substring em uma string é usando expressões regulares. As expressões regulares oferecem uma poderosa linguagem para realizar pesquisas e substituições em strings.

Python possui um módulo padrão chamado re que fornece suporte para expressões regulares. Com ele, você pode realizar pesquisas por padrões específicos em uma string.

Aqui está um exemplo de como usar expressões regulares para encontrar uma substring que consiste em dois dígitos seguidos por uma letra:

import re
string = "123A456B789C"
pattern = r"\d{2}[a-zA-Z]"
match = re.search(pattern, string)
if match:
print("Encontrado!")

Neste exemplo, usamos a função search() do módulo re para procurar por um padrão específico na string. O padrão r"\d{2}[a-zA-Z]" representa dois dígitos seguidos por uma letra maiúscula ou minúscula. Se o padrão for encontrado na string, a função search() retornará um objeto Match, e poderemos imprimir a mensagem “Encontrado!“.

As expressões regulares são uma ferramenta poderosa para lidar com substrings em Python, e conhecer os conceitos básicos pode ser útil em várias situações.

Encontrando uma substring em uma coluna de um DataFrame pandas

Se você estiver trabalhando com dados tabulares usando o Pandas, pode ser útil pesquisar substrings em colunas específicas. Nesses casos, é recomendado carregar os dados em um DataFrame pandas e usar os métodos do Pandas para realizar essa busca.

Considere o seguinte exemplo:

import pandas as pd
data = {
"Nome": ["João", "Maria", "José", "Ana"],
"Idade": [25, 30, 35, 40],
"Profissão": ["Engenheiro", "Advogada", "Programador", "Médica"]
}
df = pd.DataFrame(data)
substring = "eng"
subset = df[df["Profissão"].str.contains(substring, case=False)]
print(subset)

Neste exemplo, temos um DataFrame df com várias colunas, incluindo a coluna “Profissão”. Queremos encontrar todas as linhas em que a substring “eng” está presente na coluna “Profissão”, sem levar em consideração a sensibilidade a maiúsculas e minúsculas.

Para realizar essa busca, usamos o método str.contains() do Pandas passando a substring e o parâmetro case=False. Isso retornará um novo DataFrame chamado subset contendo apenas as linhas em que a substring foi encontrada.

Essa abordagem é altamente recomendada quando se trabalha com dados tabulares usando o Pandas, pois oferece uma forma mais eficiente e rápida de pesquisar substrings em colunas.

Conclusão

Neste artigo, você aprendeu diferentes maneiras de verificar se uma string contém uma substring em Python. Utilizando o operador in, você pode realizar essa verificação de maneira rápida e pythonica. Além disso, você aprendeu a generalizar essa verificação, removendo a sensibilidade a maiúsculas e minúsculas, a identificar os métodos de string corretos para diferentes casos e a encontrar substrings em colunas de um DataFrame pandas.

Essas técnicas são essenciais para lidar com strings e substrings em Python e podem ser aplicadas em uma variedade de cenários, desde o processamento de arquivos até a manipulação de dados tabulares. Esperamos que este artigo tenha fornecido uma compreensão clara de como realizar essa tarefa de maneira eficiente e eficaz usando a linguagem Python.