1

Cómo optimizar el Crear una Lista en Python, Filtrando otra lista. Sin For loop ni append() method. Utilizando Comprehension List

List comprehensions son una forma elegante de transformar o filtrar elementos de una lista existente para crear una nueva lista.

La manera regular que yo escribía el código para crear una lista a través de otra era:

  • Obtenía una lista.

  • Creaba un for loop para iterar cada elemento de la lista

  • Creaba un condicinal if y Si cumple la condición, entonces agregaba el elemento a la lista mediante el método append()

El método append() es utilizando para agregar elementos a la lista.
El elemento se agrega al final de la lista.

Ejemplo: Deseo crea una lista filtrando los números enteros de la lista numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

1. El código de la Forma regular que lo aplicaba:

definteger_numbers(numbers):
  """Function to create a lista with integer numbers"""# 1\. Creo una la lista donde se van a guardar los números enteros.
  integer_list = []

  # 2\. Ciclo repetivo para iterar los números en el rango del 1 al 10for num in numbers:

    # 3\. Condición para obtener los números enterosif num % 2 == 0:

      # 4\. Método append() para agregar a la lista los números que cumplen la condición
      integer_list.append(num)

  return integer_list

if __name__ == '__main__':
  response = integer_numbers([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
  print(response) # [2, 4, 6, 8, 10]

Me toma codificar varias líneas de código mediante estos pasos para obtener la nueva lista.

Con las comprehension lists utilizamos la siguiente sintaxis y nos ayuda a reducir considerablemente las
líneas de código, veanlo ustedes mismos:

# La sintaxis básica de una list comprehension es la siguiente:
nueva_lista = [expresion for elemento in lista_original if # condicion]

expresion es una expresión que define cómo se transformarán los elementos de la lista original para obtener los elementos de la nueva lista.
elemento es una variable que representa cada elemento de la lista original que se está iterando.
lista_original es la lista que se está iterando de la cual se obtendrán los elementos.
condicion es una condición OPCIONAL que filtra los elementos de la lista original.

Aplico el mismo ejemplo con el uso de las list comprehensions:

definteger_numbers(numbers):
  """Function to create a list with integer numbers"""# creo, Itero, condiciono, y guardo en la lista nueva con list comprehension en una sola línea
  integer_list = [num for num in numbers if num % 2 == 0]
  return integer_list

if __name__ == '__main__':
  response = integer_numbers([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
  print(response) # [2, 4, 6, 8, 10]

Como les dije en el principio y me quedo con esto que tome de una clase:
List comprehensions son una forma elegante de transformar o filtrar elementos de una lista existente para crear una nueva lista.

Ahora cada vez que es requirido trato de aplicar list comprehension, así también ahora para funciones lambdas, funciones de orden superior. Que son temas que puedo compartirles por aquí, y son recomendados de utilizar para optimizar el código, una vez los sepas utilizar.

Las list comprehensions también pueden incluir cláusulas else
para manejar casos en los que la condición no se cumple.

Ejemplo: Crear una nueva lista con los números pares de la lista original, y ‘No par’ para los impares


# Crear una nueva lista con los números pares dela lista original, y ‘No par’ para los impares

numeros_par_o_no_par = [‘Par’ if num % 2 == 0 elseNo par’ for num in numeros]
print(numeros_par_o_no_par) # Output: [‘No par’, ‘Par’, ‘No par’, ‘Par’, ‘No par’]```
Escribe tu comentario
+ 2