Pular para o conteúdo

Como usar subset em strings no Python?

[

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 = """Hi there and welcome.
This is a special hidden file with a SECRET secret.
I don't want to tell you The Secret,
but I do want to secretly tell you that I have one."""
"secret" in raw_file_content

O operador de associação in oferece 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ê como inglês.

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

"secret" 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 "secret" in raw_file_content:
print("Encontrado!")

Neste trecho de código, você utiliza o operador de associação para verificar se “secret” é uma substring de raw_file_content. Se for, então você imprimirá uma mensagem no terminal.

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

Em alguns casos, você pode querer verificar se uma string contém outra string, independentemente de estar em maiúsculas ou minúsculas. A fim de generalizar sua verificação e torná-la insensível a maiúsculas e minúsculas, você pode converter ambas as strings para minúsculas antes de fazer o teste.

title = "Python String Contains Substring"
search_term = "string"
if search_term.lower() in title.lower():
print("Encontrado!")

Neste exemplo, você usa o método lower() para converter tanto a title quanto search_term em letras minúsculas antes de fazer a verificação. Isso garantirá que a verificação seja insensível a maiúsculas e minúsculas.

Saiba Mais Sobre a Substring

Às vezes, você pode precisar saber mais informações sobre a substring encontrada em uma string. Para fazer isso, você pode usar os métodos de manipulação de strings do Python.

Por exemplo, se você quiser obter a posição em que a substring aparece na string, pode usar o método find():

sentence = "Learning Python is fun!"
substring = "Python"
position = sentence.find(substring)
print(f"A substring foi encontrada na posição {position}")

Neste exemplo, você usa o método find() para encontrar a posição em que a substring “Python” aparece na string “Learning Python is fun!“. O valor da variável position será a posição da substring na string.

Outro método útil é count(), que permite contar o número de ocorrências de uma substring em uma string:

sentence = "Python is a powerful language and Python is widely used."
substring = "Python"
count = sentence.count(substring)
print(f"A substring foi encontrada {count} vezes")

Neste exemplo, você usa o método count() para contar o número de ocorrências da substring “Python” na string “Python is a powerful language and Python is widely used.”. O valor da variável count será o número de ocorrências da substring na string.

Existem vários outros métodos úteis para manipulação de strings em Python, como split(), replace() e startswith(). Ao utilizar esses métodos, você tornará sua manipulação de strings ainda mais poderosa e flexível.

Encontre uma Substring com Condições Usando Regex

Se você precisa fazer uma verificação mais avançada ou aplicar condições específicas à sua pesquisa de substring, pode usar expressões regulares (regex). As expressões regulares são uma poderosa ferramenta para trabalhar com padrões em strings.

Vamos supor que você deseja encontrar todas as palavras que começam com a letra “P” em uma string. Você pode usar uma expressão regular para isso:

import re
sentence = "Python is a powerful programming language. Perl, PHP, and Python are popular languages."
matches = re.findall(r"\bP\w+", sentence)
print(matches)

Neste exemplo, você usa o módulo re para trabalhar com expressões regulares. A função findall() retorna todas as correspondências encontradas na string sentence que seguem o padrão especificado pela expressão regular. A expressão regular r"\bP\w+" encontrará todas as palavras que começam com a letra “P”.

Ao utilizar expressões regulares, você tem um alto grau de flexibilidade para definir padrões específicos e realizar verificações mais avançadas em suas strings.

Encontre uma Substring em uma Coluna de um DataFrame do pandas

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

Vamos supor que você tenha um DataFrame chamado data com uma coluna chamada “text” que contém strings. Para verificar se cada string na coluna “text” contém a substring “Python”, você pode usar o método str.contains() do pandas:

import pandas as pd
data = pd.DataFrame({"text": ["Python is a powerful language", "Java is widely used", "C++ is efficient"]})
substring = "Python"
mask = data["text"].str.contains(substring)
matching_rows = data[mask]
print(matching_rows)

Neste exemplo, você cria um DataFrame chamado data com uma coluna chamada “text”. O método str.contains() retorna uma série booleana que indica se a substring “Python” está presente em cada string da coluna “text”.

Você então usa essa série booleana como uma máscara para selecionar apenas as linhas correspondentes à substring desejada. O resultado, armazenado na variável matching_rows, será um novo DataFrame com apenas as linhas que contêm a substring “Python” na coluna “text”.

Ao utilizar o método str.contains() e outras funcionalidades do pandas, você pode realizar pesquisas avançadas em colunas de um DataFrame e extrair informações relevantes com facilidade.

Conclusão

Verificar se uma string contém uma substring é uma tarefa comum em Python. Usando o operador de associação in, você pode verificar de maneira 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 encontrada e até encontrar substrings em colunas de DataFrames do pandas.

Essas técnicas permitirão que você trabalhe com eficiência com strings em Python e tome decisões baseadas na presença ou ausência de substrings. Aprofunde seu conhecimento em Python explorando mais sobre a manipulação de strings e as funcionalidades do pandas.