Prerrequisitos: Comprensiones en Python
La mayoría de los programadores competitivos que codifican en Python a menudo enfrentan dificultades para ejecutar los programas dentro del límite de tiempo dado. Las comprensiones de lista nos ayudan a reducir el tiempo de ejecución de un programa en el que se requiere crear una lista basada en cualquier expresión matemática. Consideraremos un ejemplo para probar la afirmación anterior.
Ejemplo: Para formar una lista de todos los números pares hasta 10**7, podemos hacerlo de las siguientes maneras
Método 1:
%%timeit -n 100 even =[ ] for i in range(10**7): if i % 2 == 0: even.append(i)
Producción:
Método 2:
%%timeit -n 100 even =[i for i in range(10**7) if i % 2 == 0]
Producción:
Podemos ver la diferencia en los tiempos de ejecución de los 2 programas anteriores, esta diferencia aumenta a medida que aumentamos el rango, también cuando la expresión matemática es un poco compleja. Esta diferencia horaria importa mucho cuando este tipo de listas son parte de un programa muy grande.
Nota: Se %%timeit
utiliza la herramienta que está disponible en Jupyter Notebook, repite la ejecución de la misma celda varias veces especificadas por nosotros y devuelve el tiempo medio/promedio necesario para la ejecución del programa dado.
A continuación se encuentran los fragmentos de código de Python 3 para verificar los tiempos de ejecución de los programas anteriores,
import time # Using for loop start = time.time() a =[ ] for i in range(10**7): if i % 2 == 0: a.append(i) print("Execution time = ", time.time()-start) # Using list comprehension start = time.time() a =[i for i in range(10**7) if i % 2 == 0] print("Execution time = ", time.time()-start)
Producción:
Execution time = 1.558159589767456 Execution time = 0.9690220355987549
Publicación traducida automáticamente
Artículo escrito por vishwatej9991 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA