Introducción a la programación en Python 5 — Listas

René Silva Valdés
4 min readOct 12, 2021

--

Uso de listas en el lenguaje Python

En el lenguaje Python, las listas son un objeto que permite agrupar múltiples items en una variable. Esta abstracción nos puede ser muy útil para resolver cierto tipo de problemas. Por ejemplo, si deseamos escribir un programa que lea una secuencia de números (que termina con 0) y muestre el porcentaje que cada número representa de la suma total de la secuencia, según el siguiente dialogo:

n°? 6
n°? 4
n°? 2
n°? 0
n° %
50
33.3333333333
16.6666666667

Si quisiéramos programar nuestra solución utilizando variables que se actualicen a medida que ingresamos los números, nos encontraríamos con el problema de no saber cuantas variable necesitamos y de tener que irlas definiendo a medida que ingresamos un número nuevo, lo cual es imposible. Mientras que otro approach, como por ejemplo, guardar las variables en un archivo, sería ineficiente. Para este tipo de problemas lo más práctico sería usar una lista:

L = []
while True:
numero=input("n°?")
if numero==0:
break
L.append(numero)
total=0
i=0
while i < len(L):
total=total+L[i]
i=i+1
print("n° %")
i=0
while i < len(L):
print(L[i], 100.0*L[i]/total)
i=i+1

Como podemos ver, el código hace uso de varios de los conceptos vistos hasta ahora. Primeramente, la lista se crea vacía con L = [] , luego el ciclo while va agregando números con ayuda de la instrucción L.append(numero) hasta que se ingresa un 0, que cumpliría con la instrucción break . Luego, el segundo ciclo while calcula la suma total de los números ingresados que se encuentran en la lista. Por último, el tercer ciclo while muestra en pantalla los números ingresados y sus porcentajes. Como podemos ver, el segundo y tercer ciclo while hacen uso del método len(L) . Tanto L.append como len(L) son métodos y funciones de las listas que podemos utilizar según necesitemos. Algunos de estos son:

  • L.append(numero): Agrega numero al final de la lista L
  • len(L): Retorna el número de elementos contenidos en la lista L
  • L[i]: Selecciona el elemento con el indice i de L (los indices comienzan desde 0)
  • sum(L): Suma los números de la lista L
  • min(L)\max(L): Retorna el mínimo/máximo de la lista L

Con ayuda de estos métodos y funciones podemos hacer más versátil el uso de listas en nuestro código. Además, otra función que nos puede ayudar es la función range , la cual, al recibir como input una lista, retorna otra lista con números entre 0 y (n-1), con (n-1) = len(L)-1. En nuestro ejemplo, la función range(L) se puede complementar con ciclos for para programar una solución alternativa:

L = []
while True:
numero=input("n°?")
if numero==0:
break
L.append(numero)
total=0
for i in range( len(L) ):
total=total+L[i]
print("n° %")
i=0
for i in range( len(L) ):
print(L[i], 100.0*L[i]/total)

Esta solución es equivalente a la anterior. Notamos que en el primer ciclo for se combinan las funciones range y len para ir recorriendo los indices de la matriz (0, 1, 2, etc…) y completar la suma, mientras que el segundo ciclo recorre los indices para mostrar el resultado.

Las listas también incluyen operaciones predefinidas, tales como suma, multiplicación por un escalar, comparación, chequeo de elementos y selección. A continuación se presentan ejemplos para cada una de ellas

  • L = [6, 4, 2]
  • L+L =[6, 4, 2, 6, 4, 2]
  • L*2 = [6, 4, 2, 6, 4, 2]
  • L > [2, 4, 6] = True (se compara elemento a elemento)
  • 4 in L = True (L contiene a 4)
  • L[1:3] = [4,2]

Asimismo, las listas en Python también tienen métodos predefinidos. Los siguientes métodos retornan un valor en su respuesta:

  • L.count(x): Retorna el número de veces que aparece x en L
  • L.index(x): índice de la primera aparición de x en L. Si x no se encuentra, retorna error
  • L < L1: Comparación de listas vista anteriormente
  • x in L: Chequea si L contiene a x
  • L + L1: Concatenación de listas visto anteriormente
  • L*2: Multiplicación por escalar vista anteriormente
  • L[i:j]: Selección de elementos por su índice. La sintaxis es similar a la de MATLAB

Mientras que los métodos que modifican la lista son:

  • L.append(x): Agrega x al final de la lista L
  • L.extend(L1): extiende L con elementos de la lista L1
  • L.insert(i,x): Reemplaza el elemento de indice i por x
  • L.remove(x): Elimina la primera aparición de x de la lista
  • L.pop(i): Retorna el elemento de índice i y lo elimina de la lista
  • L.reverse(): Invierte los elementos de L
  • L.sort(): Ordena los elementos de L
  • L[i,j] = L1: Reemplaza los valores entre los indices i y j por los de la lista L1
  • L+=L1: Equivalente a la suma de matrices entre L y L1 vista anteriormente.

Con estos métodos y funciones para listas, sumados a los conceptos vistos al principio de este artículo, seremos capaces de diseñar soluciones para nuestros problemas usando listas. Algunas cosas que debemos tener en cuenta al trabajar con ellas son:

  • Una lista tiene largo indefinido, es decir, no es necesario especificarlo y cambia dinamicamente
  • Una lista puede tener elementos de distinto tipo (e.g string e int)
  • Una lista podría contener a otra lista, por e.g L[i] = [a, b, c, d]. A esto se le llama una lista de listas
  • Las listas de listas son una abstracción válida para trabajar con matrices, y a su vez las listas para trabajar con vectores

Con esto hemos concluido la presentación de las listas en Python. Podemos notar que son una herramienta muy potente que tiene un montón de casos de uso para distintos problemas que se nos puedan presentar, también que tienen un montón de métodos para utilizar (afortunadamente podemos consultar la documentación por si se nos olvida :)). Espero que te haya servido, nos vemos en el próximo capitulo.

Un saludo!

--

--

No responses yet