Identifier des palindromes

Nous souhaitons tester si chaque chaine d'une liste est un palindrome. Un palindrome est une figure de style désignant un texte ou un mot dont l'ordre des lettres (hors espaces) reste le même qu'on le lise de gauche à droite ou de droite à gauche.

Nous souhaitons donc produire une liste où chaque élément à l'ordre i de cette liste est un booléen de valeur True si l'élément d'ordre i de la liste évaluée est un palindrome, sinon False.

La liste suivante SENTENCES est une liste de chaines de caractères que vous allez utiliser. En comparant les caractères, vous aurez pour La mariée ira mal une évaluation fausse car ée.

Écrivez le code qui permet de mettre à jour


In [ ]:
SENTENCES = ["Esope reste ici et se repose",
             "La mariée ira mal",
             "Pas un palindrome",
             "radar"]

Vous pouvez écrire ce code dans la fonction suivante.


In [ ]:
def is_palindrome(sentence: str) -> bool:
    sentence = sentence.lower().replace(' ', '')
    for index, char in enumerate(sentence[:len(sentence) // 2]):
        if char != sentence[-(index + 1)]:
            return False
        
    return True

Puis l'utiliser pour convertir la liste SENTENCES.


In [ ]:
[is_palindrome(sentence) for sentence in SENTENCES]