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