Como verificar se uma string contém outra string em Python?
Como verificar se uma string em Python contém outra string
por Martin Breuss
Se você é novo na programação ou vem de uma linguagem de programação diferente de Python, pode estar procurando a melhor maneira de verificar se uma string contém outra string em Python.
Neste tutorial, você se concentrará na forma mais “pythonic” de lidar com essa tarefa, usando o operador de associação in
. Além disso, você aprenderá como identificar os métodos corretos de string para casos de uso relacionados, mas diferentes.
Finalmente, você também aprenderá como encontrar substrings em colunas pandas. Isso é útil se você precisar pesquisar dados de um arquivo CSV. Você pode usar a abordagem que aprenderá na próxima seção, mas se estiver trabalhando com dados tabulares, é melhor carregar os dados em um pandas DataFrame e procurar por substrings nele.
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. No Python, essa é a maneira recomendada de confirmar a existência de uma substring em uma string:
O operador in
dá uma forma 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 se fosse em inglês.
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 substringFalse
se o Python não encontrar a substring
Generalizando sua verificação removendo a sensibilidade à caixa
Em muitos casos, você pode querer verificar se uma string contém uma substring, independentemente de letras maiúsculas ou minúsculas. Por exemplo, se você está procurando a palavra “python” em uma string, deseja que seu programa retorne True
se encontrar “Python”, “PYTHON” ou “python” na string.
Para generalizar sua verificação e remover a sensibilidade à caixa, você pode fazer a comparação entre as strings em letras minúsculas usando o método lower()
:
Ao converter tanto a substring quanto a string original para letras minúsculas usando lower()
, você garante que a comparação seja feita sem levar em consideração a sensibilidade à caixa.
Saiba mais sobre a substring
Uma vez que você confirmou que uma string contém uma substring, pode ser útil obter mais informações sobre essa substring, como sua posição dentro da string original ou a quantidade de ocorrências.
Para obter a posição da primeira ocorrência da substring em uma string, você pode usar o método find()
:
O método find()
retorna a posição da primeira ocorrência da substring na string original. Se a substring não for encontrada, o método retorna -1.
Para contar o número de ocorrências de uma substring em uma string, você pode usar o método count()
:
O método count()
retorna o número de ocorrências da substring na string original.
Encontre uma substring com condições usando Regex
Outra forma de encontrar uma substring em uma string é usar expressões regulares (regex). As expressões regulares fornecem uma maneira poderosa e flexível de fazer correspondências de padrões em strings.
Para usar regex em Python, você precisa importar o módulo re
:
Em seguida, você pode usar a função search()
do módulo re
para localizar uma substring em uma string usando uma expressão regular:
Neste exemplo, você usa a expressão regular r"segredo"
para encontrar a palavra “segredo” em qualquer posição da string original.
O método search()
retorna um objeto de correspondência se a substring for encontrada ou None
caso contrário. Você pode usar o objeto de correspondência para obter informações adicionais sobre a substring encontrada, como sua posição na string original.
Encontre uma substring em uma coluna do DataFrame pandas
Se você estiver trabalhando com dados tabulares em Python usando a biblioteca pandas, poderá encontrar substrings em colunas do DataFrame. Isso é especialmente útil se você tiver um grande conjunto de dados em um arquivo CSV e quiser pesquisar as linhas que contêm uma determinada substring.
Para fazer isso, você precisa importar a biblioteca pandas:
Em seguida, você pode carregar o arquivo CSV em um DataFrame pandas e usar o método str.contains()
para pesquisar as colunas por substrings:
Neste exemplo, você carrega os dados do arquivo “dados.csv” em um DataFrame pandas. Em seguida, você usa o método str.contains()
para pesquisar a coluna “coluna” por substrings que contenham a palavra “python”. O resultado é um objeto booleano que indica quais linhas do DataFrame contêm a substring desejada. Em seguida, você pode selecionar as linhas correspondentes usando a operação de indexação booleana [substrings_found]
.
Isso permite obter um subconjunto do DataFrame pandas que contém apenas as linhas com a substring desejada.
Conclusão
Neste tutorial, você aprendeu como verificar se uma string em Python contém uma substring. 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ê aprendeu a generalizar sua verificação removendo a sensibilidade à caixa e a encontrar substrings em pandas DataFrame. Espero que este tutorial tenha sido útil e que você possa aplicar esses conhecimentos em seus próprios projetos em Python.