Escribe una función que reciba dos listas y devuelva una lista con los productos de los elementos de esas listas.
Hint
Itera sobre los índices y accede con operador []
Escribe la función anterior, sin utilizar el operador []
Hint
Utiliza la función zip ()
Hint
Recuerda que en un bucle for se pueden desempaquetar tuplas: `` for a, b in ...``
Compara el rendimiento de esta función con el de la solución con corchetes. ¿Cual de las dos es más rápida?
Hint
Utilizar %timeit de IPython
Escribe una función que reciba una frase y devuelva un a pareja de un bool indicando si la frase es palíndromo, y un diccionario que asocie a cada palabra de la frase si ella misma es palíndromo o no.
Hint
Un palíndromo es una frase o una palabra que es igual leída hacia adelante o hacia atrás.
Hint
Realizar la comprobación de si una secuencia es simétrica cualesquiera que sea el tipo de sus contenidos en una función a parte.
Crea un paquete palin que contenga la función del ejercicio anterior, con un módulo liga.util que contenga la función del ejercicio 2. Si no has hecho las funciones anteriores aún, haz una implementación vacía que haga:
raise NotImplemented
Hint
Recuerda que las funciones de un paquetes hay que ponerlas en el módulo especial __init__ dentro del paquete.
Documenta las funciones anteriores. Comprueba el resultado con pydoc y desde la consola.
Escribe una función may_raise (objeto) que recibe como parámetro cualquier entidad del lenguaje devuelva True si devuelve excepciones o False si no basándose heurísticamente en lo que dice su documentación.
Hint
Recuerda que puedes acceder a la documentación de un objeto a través de __doc__.
Hint
Puedes probar heurísticamente simplemente buscando la cadena :raise o @raise en el texto de la documentación.