Ir al contenido principal

Código conciso en Python

En Python es posible escribir código muy conciso para ciertas tareas, de formas que no son posibles en otros lenguajes como C o Java. Naturalmente, cuando un programador de estos otros lenguajes comienza a escribir en Python es posible que intente escribir código como si fuera C, sin aprovechar las ventajas del lenguaje. He aquí algunos ejemplos

# Código no idiomático:
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
res = 0
for n in lst:
    res = res + n
print (res)

# Código idiomático
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
res = sum(lst)
print(res)

En el caso de condiciones booleanas también están las funciones any y all, las cuales permiten verificar si al menos un elemento es True o bien si todos los elementos son True. Al combinarlo con las “List Comprehensions” es posible hacer código muy corto:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_even(n):
    return (n % 2) == 0

# Código no idiomático:
def all_are_even(numbers):
    for n in numbers:
        if not is_even(n):
            return False
    return True

# Código idiomático
def all_are_even(numbers):
    return all([is_even(n) for n in numbers]

# Utilizando funciones de orden superior
def all_are_even(numbers):
    return all(map(is_even, numbers))

Comentarios