En este video tutorial veremos cómo trabajar con listas en Python. La lista es una estructura de datos y un tipo de dato con ciertas características peculiares. Lo peculiar de las listas en Python es que permiten guardar todo tipo de objetos, como enteros, decimales, "strings", etcétera. Es decir, no tienen que ser lista de enteros o lista de "strings", etcétera, sino que pueden tener todo tipo de objetos entre sus elementos. Veamos un ejemplo: creamos una lista con el "tres", el "7,5", el string "Hola", el complejo "7j + 5" y la lista con el "uno" y "dos". Vamos a ejecutar en la terminal para tener la lista para el resto de los ejemplos. El acceso a los elementos de una lista es mediante indexación, por ejemplo, si quiero acceder al primer elemento de la lista, escribo entre corchetes el índice "cero". La indexación de las listas en Python comienzan en cero. Si quiero el tercer elemento, pido el índice "dos". Además, puedo poner índices negativos, en este caso, Python empieza a buscar desde el final de la lista. Por ejemplo, con el índice "menos uno" me devuelve el último elemento, si pondría el índice "menos dos", el anteúltimo y así, siguiendo. También Python nos permite quedarnos con porciones de la lista, generando una lista nueva, por ejemplo, "uno dos puntos" me devuelve una lista desde el índice "uno" hasta el final de la lista, "uno, dos puntos, dos" me devuelve una lista desde el índice "uno" hasta el índice "dos", sin incluir. Por lo tanto, una lista con un solo elemento, el del índice "uno". "Uno, dos puntos, tres" me devuelve una lista desde el índice "uno" hasta el índice "tres", sin incluir. Por lo tanto, me devuelve una lista de dos elementos, el del índice "uno" y el del índice "dos". "Dos puntos, dos" me devuelve una lista desde el comienzo hasta el índice "dos" sin incluir. Y "dos puntos" me devuelve toda la lista, sería una copia de la misma. Ahora veamos algunas funciones de las listas. La función "Len" en realidad es un "built-in" de Python que devuelve la cantidad de elementos de cualquier secuencia, en particular, de una lista. Si pedimos "len" de "a_list", nos devuelve "cinco". La función "append" agrega un elemento al final de la lista, por ejemplo, si vemos el contenido de "a_list", vemos que se agregó el "dos" al final. La función "extend" extiende una lista a partir de una lista pasada como parámetro. En este caso, se agregará el elemento "tres" y "cuatro" al final de la lista. Si vemos el contenido de "a_list", vemos que se agregó el "tres" y el "cuatro" al final de la lista. La función "insert" inserta un elemento en una posición determinada, por ejemplo, agrego el string "Intercalado" en la posición "cuatro". Si vemos el contenido de "a_list", vemos que se agregó en el "cero", "un", "dos", "tres", "cuatro". Si pongo un índice fuera de rango, vemos que se agrega al final de la lista y si ponemos un índice negativo, empieza a contarse el índice hacia atrás. Entonces, en este caso, se agrega al final de la lista. La función "count" cuenta cuántos elementos hay en la lista que coincidan con el argumento, en este caso, preguntamos cuántos "tres" hay en la lista y vemos que hay dos, al principio de la lista y acá más sobre el final. La función "remove" elimina el primer elemento que encuentra en la lista, que coincida con el argumento pasado como parámetro; con lo cual, en este caso, eliminaremos el primer "tres" que haya en la lista. Si vemos el contenido de "a_list", vemos que la lista ya no empieza con el "tres", sino con el "7,5". La función "copy" hace una copia superficial de la lista. Ésto quiere decir, que si cambio la lista copiada, por ejemplo, en la posición "dos" pongo otro elemento, ese cambio no se ve reflejado en la lista original, pero si modifico el elemento propiamente dicho, en caso de no ser inmutable, entonces el cambio de ese elemento se ve reflejado en ambas listas. Por otro lado, la función "pop" saca el último elemento de la lista y lo devuelve. Por ejemplo, en este caso, "a_list.pop" me devuelve el último elemento que es fuera de rango y si me fijo en el contenido de "a_list", veo que ahora no tiene el elemento fuera de rango. Adicionalmente, la función "pop" nos permite pasarle un parámetro que indica el índice del elemento a quitar de la lista, por ejemplo, "a_list.pop(3)" quita el que está en el índice "tres" de la lista, que en este caso sería el elemento intercalado. Por último, la función "clear" borra todos los elementos de la lista. Si ejecutamos en la terminal, vemos que "a_list" quedó vacía. Hemos visto qué son y cómo se utilizan las listas en Python.