Diccionarios
La listas junto con los diccionarios, que los veremos en un próximo artículo, son dos de los tipos de datos más importantes que utilizan los lenguajes de programación y en ciencia de datos cobran especial relevancia.
Una lista se puede definir como una colección ordenada de datos que el Python pueden ser de cualquier tipo. Es un objeto mutable lo que implica que una vez creada puede ser modificada.
Índice
Crear diccionario
Para crear una lista tenemos tres formas rápidas de hacerlo, escribiremos en el editor de código Python:
import pandas as pd # Especifica la ruta del archivo CSV ruta_csv = 'titanic.csv' # Carga el archivo CSV en un DataFrame de pandas data_frame = pd.read_csv(ruta_csv) # Muestra las primeras filas del DataFrame para verificar la carga print(data_frame.head())
Vamos a trabajar con una data relacionada con los supervivientes del naufragio del Titanic.
Obtener datos
Los elementos de una lista se numeran del 0 en adelante, de modo que si queremos obtener el primero de los elementos creamos una lista l1 e imprimimos por consola l1[0] El valor int que escribimos entre corchetes se llama índice o índex. Si queremos obtener el último de los elementos usaremos l1[-1] o bien l1[4]. El índice que corresponde al ultimo elemento no sería 5, sino 4, ya que se comienza a numerar por 0. Si queremos obtener el penúltimo elemento usaremos l1[-2] o bien l1[3] .
l1 = ["coche", "casa", 3, "avión", 4.5] print(l1[0]) #devuelve "coche" print(l1[-1]) #devuelve 4.5 print(l1[4]) #devuelve 4.5 print(l1[-2]) #devuelve "avión" print(l1[3]) #devuelve "avión"
Cuando queremos obtener un conjunto de datos usamos slicing , esta notación no es exclusiva de la listas. Un ejemplo de slicing sería l1[1:4], obtenemos los elementos que ocupan desde el índex=1 hasta el índex=2, es decir es un intervalo cerrado por la izquierda y abierto por la derecha. Si queremos todos los elementos escribimos l1[ : ] . Si queremos desde el índex=2 hasta el último , escribimos l1[2: ]. También podemos obtener los elementos de n en n. Usaremos l1[ :: 2] para obtenerlos de dos en dos .
l1 = ["coche", "casa", 3, "avión", 4.5, "persona", "motocicleta",7] #slicing print(l1[1:3]) #devuelve ['casa', 3, 'avión'] print(l1[:] #devuelve todos los elementos de la lista print(l1[2:]) #devuelve [3, 'avión', 4.5, 'persona', 'motocicleta', 7] print(l1[::2]) #devuelve ['coche', 3, 4.5, 'motocicleta']
Añadir, modificar y borrar datos
Una lista es un objeto de una clase list, las clases se verán en otro post, pero lo importante es entender que por ser un objeto podrá tener atributos y métodos. Los métodos son funciones que nos permiten hacer operaciones con el objeto. Para añadir un elemento a la lista usaremos el método append , como parámetro le pasaremos el nuevo elemento. Podemos necesitar insertar un elemento en un lugar concreto de la lista, para ello usaremos el método insert , al que le pasaremos dos parámetros ,el índex , que es la posición que queremos que ocupe en la lista y el elemento que queremos insertar.
l1 = ["España", "Portugal", "Francia"] l1.append("Chile") print(l1) #devuelve ['España', 'Portugal', 'Francia', 'Chile'] l1.insert(2, "Argentina") print(l1) #devuelve ['España', 'Portugal', 'Argentina', 'Francia', 'Chile']
Para modificar un elemento de una lista, necesitamos conocer el index del elemento que queremos modificar y referenciarlo:
l1 = ["España", "Portugal", "Francia"] l1[1] = "Peru" #modificamos el valor del elemento almacenado en el index 1 print(l1) #devuelve ["España", "Peru", "Francia"]
Para eliminar un elemento de una lista podemos usar el método pop, donde pasamos por parámetro el índex del elemento que queremos eliminar. Sino conocemos el índex otra alternativa es usar el método remove, donde le pasamos como parámetro el nombre del elemento. Por último si queremos eliminar todos los elementos de la lista usaremos clear.
l1 = ["España", "Portugal", "Francia", "China"] l1.pop(2) print(l1) #devuelve ['España', 'Portugal', 'China'] l1.remove("China") print(l1) #devuelve ['España', 'Portugal'] l1.clear() print(l1) #devuelve []
l1 = ["España", "Portugal", "Francia", "China"] l1.pop(2) print(l1) #devuelve ['España', 'Portugal', 'China'] l1.remove("China") print(l1) #devuelve ['España', 'Portugal'] l1.clear() print(l1) #devuelve []
Ejercicios
#solucion ejercicio 1 l1 =[1,2,3,4,5,6,7] l1.reverse() print(l1) #devuelve [7, 6, 5, 4, 3, 2, 1] #solucion ejercicio 2 l1.append(6) l1.remove(5) l1[l1.index(2)]='dos' #usamos el método index para conocer el índice del numero 2 #solucion ejercicio 3 repeticiones = l1.count(6) print(repeticiones) #devolverá 2