Python

Como fazer uma busca ignorando acentuação em Python?

24 de junho de 2020

Como fazer uma busca ignorando acentuação em Python?

Neste artigo vamos aprender uma forma simples de fazer uma busca ignorando acentuação em Python, um problema que acontece no nosso idioma.

busca ignorando acentuacao no python capa

Fala programador(a), beleza? Bora aprender mais sobre Python!

No Python temos uma maneira bem interessante e fácil de buscar em uma string ignorando a acentuação

Precisamos utilizar a biblioteca unidecode, e converter as palavras para outro encode

E assim fazer a nossa busca com acentuação ignorada, vamos ver na prática:

import unidecode

palavra = "programação"
palavraSemAcentuacao = unidecode.unidecode(palavra)

print(palavraSemAcentuacao)

if(palavraSemAcentuacao.find('cao')):
  print("Encontrado!")

Aqui temos a palavra programação que tem acento, e utilizamos o método unidecode da lib unidecode para reformatar essa string sem esse acento

Depois utilizamos o find para verificar se encontramos ‘cao’ na palavra programação sem acento

E assim realizamos a busca ignorando a acentuação, veja a saída:

programacao
Encontrado!

Podemos fazer isso em listas também, veja:

palavras = [
  u"programação",
  u"acentuação",
  u"relação",
  u"será",
]

def to_ascii(ls):
    for i in range(len(ls)):
        ls[i] = unidecode.unidecode(ls[i])

to_ascii(palavras)
print(palavras)

Aqui criamos uma função que vai remover a acentuação, ela basicamente itera a cada item da lista e utiliza o mesmo método visto anteriormente

A saída é:

['programacao', 'acentuacao', 'relacao', 'sera']

Desta maneira podemos agora buscar nesta lista sem problemas, pois a acentuação foi removida, graças a função que criamos

Conclusão

Neste artigo vimos como fazer uma busca ignorando acentuação em Python

Utilizamos a biblioteca unidecode para remover a acentuação da palavra ou das palavras em uma lista que precisamos buscar

Depois é só utilizar o método find com a string que queremos checar em cada frase ou palavra

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

0
Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x