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
Publicar un comentario