Sugerencias de programación

Los 10 mejores y útiles consejos para acelerar su código Python

Los 10 mejores y útiles consejos para acelerar su código Python

Si alguien te pregunta: "¿Cuál es el lenguaje de programación de más rápido crecimiento en el mundo en este momento??"La respuesta será simple. Su pitón. La popularidad mundial se debe a su sintaxis simple y sus ricas bibliotecas. Hoy en día, puede hacer casi cualquier cosa con Python: ciencia de datos, aprendizaje automático, procesamiento de señales, visualización de datos, lo que sea. Sin embargo, muchas personas afirman que Python es un poco lento al resolver problemas graves. Pero el tiempo para ejecutar un programa depende del código que se escribe. Con algunos consejos y trucos, se puede acelerar el código Python y mejorar el rendimiento del programa.

Consejos y trucos para acelerar el código Python


En caso de que esté buscando formas de acelerar su código Python, el artículo es para usted. Ilustra las técnicas y estrategias para reducir el tiempo de ejecución de un programa. Los consejos no solo acelerarán el código, sino que también mejorarán las habilidades de Python.

01. Utilice funciones y bibliotecas integradas


Python tiene toneladas de funciones y módulos de biblioteca. Están escritos por desarrolladores expertos y han sido probados varias veces. Por lo tanto, estas funciones son altamente eficientes y ayudan a acelerar el código; no es necesario escribir el código si la función ya está disponible en la biblioteca. Tomamos un ejemplo sencillo al respecto.

# code1 newlist = [] por palabra en oldlist: newlist.añadir (palabra.superior())
# code2 newlist = map (str.superior, lista antigua)

Aquí el segundo código es más rápido que el primer código porque se ha utilizado la función de biblioteca map (). Estas funciones son útiles para principiantes. ¿Quién no quiere un código más rápido, limpio y más pequeño para escribir?? Por lo tanto, utilice las funciones y los módulos de la biblioteca tanto como sea posible.

02. Estructura de datos correcta en el lugar correcto


El uso de la estructura de datos adecuada disminuirá el tiempo de ejecución. Antes de comenzar, debe pensar en la estructura de datos que se utilizará en el código. Una estructura de datos perfecta acelerará el código de Python mientras que otros lo estropearán. Debe tener una idea sobre la complejidad temporal de las diferentes estructuras de datos.

Python tiene estructuras de datos integradas como lista, tupla, conjunto y diccionario. La gente está acostumbrada a usar listas. Pero hay algunos casos en los que la tupla o el diccionario funcionan mucho mejor que las listas. Para aprender más estructuras de datos y algoritmos, debe consultar los libros de aprendizaje de Python.

03. Try para minimizar el uso de por Círculo


Es bastante difícil evitar el uso de por círculo. Pero siempre que tienes la oportunidad de prevenirlo, los expertos dicen que lo haces. El bucle for es dinámico en python. Su tiempo de ejecución es más que un bucle while. El bucle for anidado requiere mucho más tiempo. Dos bucles for anidados tomarán el cuadrado del tiempo en un solo bucle for.

# code1 para i en big_it: m = re.buscar (r '\ d 2 - \ d 2 - \ d 4', i) si m:… 
# code2 date_regex = re.compilar (r '\ d 2 - \ d 2 - \ d 4') para i en big_it: m = date_regex.buscar (i) si m:… 

Es mejor usar un reemplazo adecuado en este caso. Además, si por los bucles son inevitables, mueva el cálculo fuera del bucle. Ahorrará mucho tiempo. Podemos verlo en el ejemplo anterior. Aquí el segundo código es más rápido que el primer código ya que el cálculo se ha realizado fuera del ciclo.

04. Evite las variables globales


Las variables globales se utilizan en Python en muchos casos. La palabra clave global se usa para declararlo. Pero el tiempo de ejecución de estas variables es mayor que el de la variable local. Usar menos de ellos evita el uso innecesario de memoria. Además, Python recoge una variable local más rápidamente que una global. Al navegar por variables externas, Python es realmente lento.

Varios otros lenguajes de programación se oponen al uso no planificado de variables globales. El contador se debe a efectos secundarios que aumentan el tiempo de ejecución. Entonces, intente usar una variable local en lugar de una global siempre que sea posible. Además, puede hacer una copia local antes de usarla en un bucle, lo que ahorra tiempo.

05. Aumentar el uso de la comprensión de listas


La comprensión de listas ofrece una sintaxis más corta. Es un puñado cuando se crea una nueva lista basada en una lista existente. Loop es imprescindible en cualquier código. A veces, la sintaxis dentro del bucle se vuelve grande. En ese caso, se puede utilizar la comprensión de listas. Podemos tomar el ejemplo para entenderlo con mayor precisión.

# code1 square_numbers = [] para n en el rango (0,20): si n% 2 == 1: square_numbers.añadir (n ** 2)
# code2 square_numbers = [n ** 2 para n en el rango (1,20) si n% 2 == 1]

Aquí, el segundo código lleva menos tiempo que el primer código. El enfoque para la comprensión de listas es más corto y más preciso. Puede que no haga mucha diferencia en los códigos pequeños. Pero en un desarrollo extenso, puede ahorrarle algo de tiempo. Por lo tanto, use la comprensión de listas siempre que tenga la oportunidad de acelerar su código Python.

06. Reemplazar range () con xrange ()


El asunto de range () y xrange () viene si está usando Python 2. Estas funciones se utilizan para iterar cualquier cosa en el bucle for. En el caso de range (), guarda todos los números del rango en la memoria. Pero xrange () solo guarda el rango de números que deben mostrarse.

El tipo de retorno de range () es una lista, y el de xrange () es un objeto. Eventualmente, xrange () toma menos memoria y, como resultado, menos tiempo. Entonces, use xrange () en lugar de range () siempre que sea posible. Por supuesto, esto solo se aplica a los usuarios de Python 2.

07. Usar generadores


En Python, un generador es una función que devuelve un iterador cuando se llama a la palabra clave rendimiento. Los generadores son un excelente optimizador de memoria. Devuelven un artículo a la vez en lugar de devolver todos a la vez. Si su lista incluye una cantidad considerable de datos y necesita usar un dato a la vez, use generadores.

Los generadores calculan datos en pedazos. Por lo tanto, la función puede devolver el resultado cuando se la solicita y conservar su estado. Los generadores conservan el estado de la función al detener el código después de que la persona que llama genera el valor, y continúa ejecutándose desde donde se dejó a pedido.

Dado que los generadores acceden y calculan el valor bajo demanda, no es necesario guardar una parte significativa de los datos por completo en la memoria. Resulta en ahorros considerables de memoria, lo que finalmente acelera el código.

08. Concatenar cadenas con unión


La concatenación es bastante común cuando se trabaja con cadenas. Generalmente, en Python, concatenamos usando '+'. Sin embargo, en cada paso, la operación "+" crea una nueva cadena y copia el material anterior. Este proceso es ineficaz y lleva mucho tiempo. Tenemos que usar join () para concatenar cadenas aquí si queremos acelerar nuestro código Python.

# code1 x = "I" + "soy" + "a" + "python" + "geek" print (x)
# code2 x = "".unirse (["yo", "soy", "a", "python", "geek"]) imprimir (x)

Si miramos el ejemplo, el primer código imprime "Iamapythongeek" y el segundo código imprime "Soy un geek de Python".  La operación join () es más eficiente y rápida que '+'. También mantiene limpio el código. ¿Quién no quiere un código más rápido y limpio?? Entonces, intente usar join () en lugar de '+' para concatenar cadenas.

09. Perfil de su código


La creación de perfiles es una forma clásica de optimizar el código. Hay muchos módulos para medir las estadísticas de un programa. Estos nos hacen saber dónde el programa está gastando demasiado tiempo y qué hacer para optimizarlo. Por lo tanto, para garantizar la optimización, realice algunas pruebas y mejore el programa para mejorar la efectividad.

El temporizador es uno de los perfiladores. Puede usarlo en cualquier parte del código y encontrar el tiempo de ejecución de cada etapa. Entonces podemos mejorar el programa donde se demore demasiado. Además, hay un módulo perfilador incorporado llamado LineProfiler. También da un informe descriptivo sobre el tiempo consumido. Hay varios perfiladores que puede aprender leyendo libros de Python.

10. Manténgase actualizado: utilice la última versión de Python


Hay miles de desarrolladores que agregan más funciones a Python con regularidad. Los módulos y las funciones de la biblioteca que estamos utilizando hoy estarán obsoletos por los desarrollos de mañana. Los desarrolladores de Python hacen que el lenguaje sea más rápido y confiable día a día. Cada nueva versión ha aumentado su rendimiento.

Entonces, necesitamos actualizar las bibliotecas a su última versión. Python 3.9 es la última versión ahora. Es posible que muchas bibliotecas de python 2 no se ejecuten en python3. Tengamos eso en cuenta y usemos siempre la última versión para obtener el máximo rendimiento.

Finalmente, Insights


El valor de los desarrolladores de Python en el mundo aumenta día a día. Entonces, Qué esperas! Ya es hora de que empieces a aprender a acelerar el código Python. Los consejos y trucos que proporcionamos seguramente lo ayudarán a escribir códigos eficientes. Si los sigue, podemos esperar que pueda mejorar su código y entrar en cosas de Python más avanzadas.

Hemos intentado mostrar todos los trucos y consejos principales que se requieren para acelerar el código. Esperamos que el artículo haya respondido a la mayoría de sus preguntas. Ahora, el resto está sobre ti. Sin embargo, el conocimiento no tiene fin y el aprendizaje no tiene fin. Entonces, si nos hemos perdido algo importante, avísenos. Feliz aprendizaje!

Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...
Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...
Instale el último juego de estrategia de OpenRA en Ubuntu Linux
OpenRA es un motor de juego de estrategia en tiempo real libre / gratuito que recrea los primeros juegos de Westwood como el clásico Command & Conquer...