Neste artigo vamos aprender uma forma simples de fazer uma busca ignorando acentuação em Python, um problema que acontece no nosso idioma.
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