Palíndromo
Descripción
Python proveé una función integrada llamada reversed
, la cual toma como argumento una secuencia de elementos - como una lista o una cadena - y devuelve un objeto reversed
que contiene los elementos en orden inverso.
reversed('parrot')
Puedes usar la función list
para convertir el objeto reversed
a una lista
list(reversed('parrot'))
['t', 'o', 'r', 'r', 'a', 'p']
O también puedes convertirlo a una cadena usando el método join
''.join(reversed('parrot'))
'torrap'
Dado lo anterior, podemos escribir una función, como la siguiente, que revierta una palabra.
def reverse_word(word):
return ''.join(reversed(word))
Un palíndromo es una palabra que se escribe de la misma forma al derecho y al revés, por ejemplo, (en inglés)) noon
o rotator
. Escribe una función llamada is_palindrome
que tome como argumento una cadena y devuelve True
si la cadena es un palíndromo, y que devuelva False
si no lo es.
Puedes usar el siguiente bucle para encontrar todos los palíndromos, de al menos siete letras, de la lista de palabras del archivo words.txt.
for word in word_list:
if len(word) >= 7 and is_palindrome(word):
print(word)
Ejemplo de Ejecución:
>> python is_palindrome.py
deified
halalah
reifier
repaper
reviver
rotator
sememes
Solución
Mostrar solución
def reverse_word(word):
return ''.join(reversed(word))
def is_palindrome(word):
return word.lower() == reverse_word(word).lower()
f = open('/content/drive/MyDrive/words.txt')
word_list = f.read().split()
for word in word_list:
if len(word) >= 7 and is_palindrome(word):
print(word)
f.close()
Fuente del ejercicio: https://allendowney.github.io/ThinkPython/chap09.html#id1