Está en la página 1de 18

Tema: Manejo de listas

https://pythontutor.com/
Manejo de listas
Las listas son una de las estructuras de datos más versátiles
que ofrece Python por lo que se le recomienda dar un repaso
previo de las siguientes funcionalidades:
Creación de listas vacías
Creación de listas con elementos iniciales
Añadir elementos a una lista existente
Modificar elementos existentes de una lista
Eliminar elementos existentes de una lista
Combinar dos listas
Ordenamiento de listas
Para el ordenamiento de listas, podemos optar por una de dos opciones:
1. Ordenar la lista en si, perdiendo el orden original (Se realiza
mediante el método sort() de la misma lista)
2. Obtener una copia ordenada de la lista, conservando la lista
original en el mismo orden (Se realiza mediante la función
sorted(lista), a la cual le pasamos como argumento la lista
que deseamos que ordene).
#Ordenar la lista en si, perdiendo el orden
original
lista_original = [3, 4 , 2]
print(lista_original)

lista_original.sort()
print(lista_original)
#Obtener una copia ordenada de la lista,
conservando la lista original en el orden que ya
estaba definida
lista_original2 = [23, 10, 30, 5]
lista_ordenada = sorted(lista_original2)

print(f"lista original = {lista_original2}, y la version


ordenada es {lista_ordenada}")
Copiado de listas
El proceso de copiado de listas no se da con la simple
asignación de la lista a un nuevo identificador, eso
solamente generaría una alias para la misma lista y no una
copia independiente en la memoria de la computadora.
Para realizar el copiado de una lista se cuenta con
múltiples opciones:
1. Método copy()
2. Función list()
3. Notación de slices
En el siguiente código demostraremos lo aquí presentado
#Copiado de listas
lista_base = ["a", "b", "c", "d"]
copia = lista_base #Esto NO copia la lista, genera un
nuevo indentificador para el mismo objeto

#Formas de SI copiar una lista


copia_2 = lista_base.copy()
copia_3 = list(lista_base)
copia_4 = lista_base[:]
Comprensión de listas (Lists comprehension)

La comprensión de listas ("Lists comprehension") se


refiere a la capacidad declarativa que ofrece Python
de generar una lista derivando los nuevos valores a
partir de valores ya existentes en una secuencia
previa. Esta es una característica que se considera
muy "pythonica" y se recomienda ampliamente
sobre su alternativa procedural que veremos a
continuación.
En el escenario #1 veremos cómo realizar este
proceso mediante el método procedural imperativo
que delata a quien está aprendiendo Python pero
que viene con conocimientos de algún otro lenguaje
procedural; si bien es cierto que se logra el objetivo
deseado, este método no se considera de buen
gusto ni Pythonico ya que obliga a ejecutar una
estructura iterativa sobre la secuencia base tomando
un elemento a la vez, procesándolo y agregándolo a
la lista resultante.
lista_uno = [10, 20, 30, 40, 50]

#Escenario 1 - Método procedural


imperativo
lista_resultante = []
for valor in lista_uno:
lista_resultante.append(valor * 2)
print(f"resultado = {lista_resultante}")
Posteriormente, en el escenario #2
podemos ver la aplicación de la
comprensión de listas para obtener el
resultado deseado, el cual se obtuvo
mediante la ejecución de una sola línea.
lista_uno = [10, 20, 30, 40, 50]

#Escenario 2 - Método declarativo


(Comprensión de listas)

lista_con_resultado = [valor * 2 for valor in


lista_uno]
print(f"resultado = {lista_con_resultado}")
La comprensión de listas no está limitada a
trabajar sobre listas.

Ya que puede aplicarse sobre listas, conjuntos,


secuencias, generadores o cualquier objeto que
retorne sus elementos uno a la vez.
#Podemos obtener listas que contengan
secuencias de valores

secuencia_entera = [valor for valor in range(1,101)]


print(secuencia_entera)
Comprensión de listas con
condiciones

Puede darse el caso de que se desee


procesar solamente aquellos elementos
del iterable origen que cumplan con una
determinada condición, para ello la
comprensión de listas nos permite
especificar dicho criterio.
lista_base = ["a", "b", 1, "c", 2, 3, "5"]

lista_destino = [valor for valor in


lista_base if(isinstance(valor, int))]
print(lista_destino)
Gracias por tu atención

También podría gustarte