One liners en Python



@eduardo_gpg

Número de visitas 741

Tiempo de lectura 2 min

7 Octubre 2022

El día de hoy veremos un par de One liners en Python que nos pueden ser de mucha utilidad. No solo para reducir líneas de código, si no para hacer que nuestro código sea mucho más fácil de leer y mantener.

Bien, con esta breve introducción, podemos comenzar.

Función SUM

Regularmente, siempre que necesitamos sumar elementos de una colección, ya sea una lista, una tupla, un arreglo etc.. lo primero que se nos viene a la mente es implementar una ciclo for. Algo como lo siguiente.

total = 0
for element in range(0, 1_000_000):
    total += element

print(total)

Si bien esto funciona, déjame decirte que existe una forma mucho más sencilla, y eficiente, para obtener el mismo resultado, y estamos hablando de la función sum.

total = sum(range(0, 1_000_000)
print(total)

Menos código, mismo resultado, mejor performance. 🛸

Desempaquetado de valores.

Siempre que deseemos obtener valores de una colección, podemos hacer uso del desempaquetado que nos ofrece Python.

Pasando de esto.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

first = numbers[0]
second = numbers[1]
third = numbers[2]

A esto.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

first, second, third, _ = numbers

¿Mucho mejor no lo crees? 🐛

Si quieres conocer el por qué del guion bajo (_), te comparto un post en donde hablamos de este curioso carácter en Python.

List comprehensions

Siguiendo con el tema las colecciones, déjame decirte que existe una forma en la cual es posible crear listas y diccionarios en Python en una sola línea de código.

Podemos refactorizar el siguiente código.

new_list = []

for element in range(0, 1_000_000):
    if element % 2  == 0 and element % 5 == 0:
        new_list.append(element)

De tal forma que luzca como algo así.

new_list = [element for element in range(0, 1_000_000)  if element % 2  == 0 and element % 5 == 0 ]

Creando un código mucho más Pythonico. 🐍

Lambdas

De funciones lambdas ya hemos hablado en ocasiones anteriores, sin embargo es importante mencionar que mediante ella es posible crear funciones en una sola línea de código.

Antes.

def suma(a, b):
    return a + b

resultado = suma(10, 20)

Después.

suma = lambda(a, b): a + b
resultado = suma(10, 20)

Expresiones condicionales

Y ya para finalizar, siempre que desees asignar o retornar algún valor dependiendo de alguna condición, lo que puedes hacer es apoyarte del "operador ternario" en Python.

Aquí un ejemplo.

size = None

if screen.length >= 750:
    size = 'M'
else:
    size = 'S'

Podemos reducir eso a esto:

size = 'M' if screen.length >= 750 else 'S'

Mismo resultado, con menos líneas de código.


¿El contenido te resulto de ayuda?

Para poder dejar tu opinión es necesario ser un usuario autenticado. Login

Más Tips y Ejercicios 🐍

Adquiere una subscripción PyWombat por tan solo $3 USD. al mes.

Conoce los beneficios de ser usuario premium:
Niveles desbloqueados: Ten accesos a todos los niveles de ejercicios. 🔓
Nuevo límite: Incrementa tu límite de ejercicios por semana. 🚀
Contenido único: Recibe semanalmente recursos exclusivos de Python (Videos, Artículos y Capitulos del libro PyWombat, comienza como desarrollador Python. 🐍