Dominar el uso de listas y bucles es una de las 5 habilidades fundamentales para construir algoritmos:
Arrays (Arreglos)
.Loops (Bucles)
.Un lista es, normalmente, cualquier colección de valores. Las reglas de cómo agregar o eliminar elementos de esa lista pueden cambiar de un lenguaje de programación a otro. Pero - en general - son las únicas formas en que los desarrolladores pueden crear elementos. Las listas no son la única forma que tenemos para enumerar las cosas y almacenar múltiples valores de una sola vez pero es la más usada para ese propósito. Por ejemplo: lista de estudiantes, lista de artistas, lista de transacciones ... ¡cualquier cosa!
Este tipo de datos hace muchas más cosas que los otros. Las listas son la única forma de almacenar más de un tipo de datos en la misma variable.
Cada lista tiene los mismos conceptos básicos:
The items: Son los valores reales dentro de cada posición de la lista.
The length: es el tamaño de la lista (cuántos items tiene la lista).
Index: es la posición del elemento.
☝️ Las posiciones de la comienzan con cero (0); el primer elemento es el elemento en la posición cero (0)
Utilizando corchetes de la siguiente manera:
1my_list = [] # lista vacia 2my_list = ["Apple", "Orange", "Donkey"] # La única forma de declarar una lista 3my_tuple = ("Apple", "Orange", "Donkey") # Esto no es una lista, es una version más limitada llamada "Tupla" 4my_set = {"Apple", "Orange", "Donkey"} # Esto no es una lista, es una version más limitada llamada "set" (conjunto). 5
Para acceder a un elemento específico en una lista, necesita un index
o índice. Un índice es un valor entero que representa la posición del arreglo a la que desea acceder/obtener/recuperar.
El índice siempre debe comenzar en cero (0). Eso significa que una lista de 2 elementos puede tener un índice = 0 o un índice = 1. Tratar de obtener la segunda posición devolverá "indefinido" porque significará que estamos tratando de acceder al tercer elemento (que no existe). Por ejemplo, para obtener cualquier elemento de la lista puede hacer lo siguiente:
1print(my_list[0]) # Esto imprimirá el 1er elemento en la consola. 2aux = my_list[5] 3print(aux) # Esto imprimirá el 6to elemento en la consola. 4print(my_list[len(my_list)-1]) # Esto imprimirá el último elemento en la consola. 5
Si lo deseas, puedes restablecer o actualizar cualquier elemento dentro de un arreglo usando el índice como este:
1my_list[5] = 'Whatever value' # Esto asignará el valor 'Whatever value' en el sexto elemento de la lista. 2
Hay dos formas de agregar un nuevo elemento: final de la lista o donde tu quieras, y necesitemos usar las funciónes append e insert respectivamente para eso.
append
en las listas de Python1my_list = ['Pedro', 'Juan', 'Maria'] 2my_list.append('Chris') # esto agrega a chris al final del arreglo 3print(my_list) # esto imprimirá ['Pedro', 'Juan', 'Maria', 'Chris'] 4
insert
(seleccionando posición) en PythonLa ventaja de utilizar insert es que te permite seleccionar la posicion donde deseas insertar el elemento en el array:
1my_list = ['Pedro', 'Juan', 'Maria'] 2my_list.insert(1,'Chris') # esto agrega a chris entre Pedro y Juan 3print(my_list) # esto imprimirá ['Pedro', 'Chris', 'Juan', 'Maria']; 4
☝️ La funcion
insert
es mucho mas lenta queappend
, deberias tratar de evitarla.
A diferencia de otros lenguajes como Javascript, Python cuenta con varias funciones para remover elementos de un array: pop, remove, delete.
Eliminar un elemento utilizando pop
tiene exactamente las mismas limitaciones que al agregar un elemento utilizando append
: solo permite eliminar un elemento de la última posición de la lista.
1my_list = ['Pedro', 'Chris', 'Juan', 'Maria'] 2my_list.pop() 3print(my_list) # esto imprimirá ['Pedro', 'Chris', 'Juan'] 4
Te permitirá eliminar la primera ocurrencia de un elemento por su nombre.
1# Si deseas eliminar 'Chris', necesitas hacer lo siguiente: 2my_list = ['Pedro', 'Chris', 'Juan', 'Maria'] 3my_list.remove('Chris') 4print(my_list) # esto imprimirá ['Pedro', 'Juan', 'Maria'] 5
Una de las funcionalidades mas útiles de del
es que puedes eliminar muchos elementos de una sola vez. Debes especificar la posición de partida y de término.
1# Si deseas eliminar 'Chris', necesitas hacer lo siguiente: 2my_list = ['Pedro', 'Chris', 'Juan', 'Maria', 'Pepe', 'Mario', 'Bob'] 3del my_list[2:5] 4print(my_list) # esto imprimirá ['Pedro', 'Chris', 'Mario', 'Bob'] 5
Normalmente, cuando trabajes con listas, tendrás que recorrer todos los items. Por ejemplo: ordenándolos manualmente; cambiar su orden, filtrarlos, etc.
Hay varias formas de recorrer una lista, pero la mas utilizada es la funcion for
:
1my_list = [3423, 5, 4, 47889, 654, 8, 867543, 23, 48, 56432, 55, 23, 25, 12] 2for number in my_list: 3 print(number) 4
A veces es útil recorrer un arreglo utilizando la posicion:
1for i in range(0, len(my_list)): 2 print("La posicion es " + str(i) + " para el elemento " + my_list[i]) 3 4# Imprimira lo siquiente 5# - La posicion es 0 para el elemento Pedro 6# - La posicion es 1 para el elemento Chris 7# - La posicion es 2 para el elemento Mario 8# - La posicion es 3 para el elemento Bob 9