5. Listas - manuelmarinduque/Apuntes_Python_3 GitHub Wiki
-
Estructura de datos que permite almacenar gran cantidad de valores (equivalente a los array o vectores)
-
En Python las listas pueden guardar diferentes tipos de valores.
-
Se pueden expandir dinámicamente añadiendo nuevos elementos.
Nota: En otros lenguajes no ocurren las dos últimas características.
nombre_lista = [elemento_1, elemento_2, elemento_n]
El índice de la lista empieza desde 0.
miLista = ["Víctor", "Cristhian", True, 25.3, 85]
Nota: También se puede hacer slicing en estructuras iterables como tuplas y Strings.
nombreLista [pos_inicial : pos_final : espacios]
Para acceder a todos los elementos de la lista se escribe dos puntos dentro de las barras o se pueden omitir:
print(miLista[:])
print(miLista)
Para acceder a una porción de la lista se escribe dentro de las barras una posición inicial, que se incluye, seguido de dos puntos y una posición final, que no se incluye:
print(miLista[1:3])
# Salida: [Cristhian, Alejandro]
Si la posición inicial es 0, se puede omitir de la instrucción anterior. Si se omite la posición final, quiere decir que se accedería a los valores desde la posición inicial hasta el final del arreglo:
print(miLista[2:])
# Salida: [Alejandro, Manuel], desde la posición 2 hasta el final
Acceder a los valores desde la posición inicial hasta la posición final de n en n.
miLista = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
print(miLista[1:5:3])
print(miLista[1::2]) # Salida impares
print(miLista[::2]) # Salida pares
Las listas son mutables, por lo que se puede cambiar el valor de uno de sus elementos a través de su índice:
lista_mascotas = ["perro", "gato", "pollo"]
lista_mascotas[1] = "ganzo"
# Salida: ["perro", "ganzo", "pollo"]
O cambiar los valores de algunos de sus elementos a través de slicing:
letras = ["a","b","c","d","e","f"]
letras[0:3] = ["A","B","C"]
# Salida: ["A","B","C","d","e","f"]
Para agregar un nuevo elemento a una lista se utiliza la función append(). Esta ubica el elemento al final:
miLista.append("Carlos")
Para agregar un nuevo elemento a una lista en un índice específico se utiliza la función insert(), la cual requiere dos parámetros: el índice y el valor del elemento:
miLista.insert(2,"Carlos")
Para agregar varios elementos a una lista (lista destino) se utiliza la función extend(), ubicándolos al final. Requiere como parámetro una lista origen con los valores a agregar y lo que hace es almacenar en la lista destino la concatenación de ambas listas.
miLista.extend(["Marin", "Sanchez", 1556071])
Para conocer el índice de un elemento de la lista se utiliza la función index(valor), requiere como parámetro el valor del elemento. Si el elemento está repetido dentro de la lista, la función retorna el índice del primer elemento encontrado:
print(miLista.index("Alejandro"))
# Salida: 2
Para comprobar si un elemento se encuentra o no dentro de una lista se usa el operador lógico in, devuelve True o False:
print("Víctor" in miLista)
# Salida: True
Para eliminar un elemento de la lista se utiliza la función remove(), requiere como parámetro el valor del elemento. Si es el último elemento, se utiliza la función pop().
miLista.remove("Marin")
Para ordenar los elementos de una lista se utiliza la función sort()
Para copiar una lista se utiliza slicing de dos puntos, de la siguiente forma:
copia:_lista = lista_original[:]
Si se copia una lista de la forma copia_lista = lista_original, al modificarse los elementos de la lista copia, también se modifican los de la lista original. Lo anterior debido a que ambas apuntan o hacen referencia a la misma posición en memoria.
Para concatenar dos listas se utiliza el operador suma. Se diferencia de la función extend al almacenar la concatenación en una nueva lista:
miLista = ["Marin", "Manuel"]
miLista2 = ["Duque", "Victor"]
miLista3 = miLista + miLista2
Para repetir los elementos de una lista se utiliza el operador multiplicación:
miLista = ["Marin", "Manuel"] * 3
print(miLista[:])
# Salida: ["Marin", "Manuel", "Marin", "Manuel", "Marin", "Manuel"]
Recorrer una lista a través del bucle for usando la función enumerate(), la cual retorna el elemento de la lista y su índice:
lista = list(range(1,11))
for indice, valor in enumerate(lista):
lista[indice] *= 10
print(lista)
# Salida: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]