Búsqueda de sitios web

Impresionantes módulos de Python que probablemente no estés usando (pero deberías usar)


por Adam Goldschmidt

Python es un lenguaje hermoso y contiene muchos módulos integrados que tienen como objetivo ayudarnos a escribir un código mejor y más bonito.

Objetivo

A lo largo de este artículo, utilizaremos algunos módulos y métodos menos conocidos que creo que pueden mejorar la forma en que codificamos, tanto en visibilidad como en eficiencia.

Tupla con nombre

Creo que algunos de ustedes ya conocen el namedtuple más popular del módulo collections (si no lo conocen, compruébelo), pero desde Python 3.6, una nueva clase está disponible en el módulo typing: NamedTuple. Ambos están diseñados para ayudarle a crear rápidamente objetos inmutables legibles.

NamedTuple es en realidad una versión mecanografiada de namedtuple y, en mi opinión, es mucho más legible:

Aquí está la alternativa namedtuple:

matriz.matriz

Matrices eficientes de valores numéricos. Las matrices son tipos de secuencia y se comportan de manera muy similar a las listas, excepto que el tipo de objetos almacenados en ellas está restringido. — Documentos de Python

Cuando usamos el módulo array, necesitamos crear una instancia con un código de tipo, que es el tipo que usarán todos sus elementos. Comparemos la eficiencia del tiempo con una lista normal, escribiendo muchos números enteros en un archivo (usando el módulo pickle para una lista normal):

14 veces más rápido. Eso es mucho. Por supuesto, también depende del módulo pickle, pero aún así, la matriz es mucho más compacta que la lista. Entonces, si está utilizando valores numéricos simples, debería considerar usar el módulo array.

itertools.combinaciones

itertools es un módulo impresionante. Tiene tantos métodos diferentes para ahorrar tiempo que todos se enumeran aquí. ¡Incluso hay un repositorio de GitHub que contiene más itertools!

Pude usar el método combinaciones esta semana y pensé en compartirlo. Este método toma un iterable y un número entero como argumentos, y crea un generador que consta de todas las combinaciones posibles del iterable con una longitud máxima del número entero dada, sin duplicación:

dict.declaves

Una forma rápida y hermosa de crear un dictado con valores predeterminados:

Por último, pero no menos importante, el módulo dis

El módulo dis admite el análisis del código de bytes CPython desmontándolo.

Como puede que sepas o no, Python compila el código fuente en un conjunto de instrucciones llamado "código de bytes". El módulo dis nos ayuda a manejar estas instrucciones y es una excelente herramienta de depuración.

Aquí hay un ejemplo del libro Fluent Python:

Recibimos un error, pero la operación aun así se realizó correctamente. ¿Cómo? Bueno, si miramos el código de bytes (agregué comentarios cerca de las partes importantes):

Antes de que te vayas…

¡Gracias por leer! Para obtener más artículos relacionados con Python y otras cosas interesantes, puedes seguirme en Medium o GitHub (¡protagonizo algunos repositorios increíbles!).

Si te ha gustado este artículo, mantén pulsado el botón de aplaudir. para ayudar a otros a encontrarlo. ¡Cuanto más lo sostengas, más aplausos darás!

Y no dude en compartir más gemas ocultas de Python en los comentarios a continuación.

Artículos relacionados