[MÚSICA] Bienvenidos a otra lección. En esta lección, vamos a aprender cómo podemos modificar y cómo podemos manipular elementos dentro de las listas. Ahora que you sabemos cómo definir listas con distintas cantidades de elementos, y cómo imprimir los datos que hay dentro de ellas, podemos hacer una lista como la que vemos aquí en este ejemplo. Esta lista va a mostrar los elementos que queremos contar en el supermercado tal como lo vimos en la lección anterior. Pero ahora, ¿qué pasa si teniendo esta lista nos damos cuenta que queremos agregar un nuevo elemento a la lista? Porque después me recordé que me faltaba agregar queso en la lista. Podríamos, por ejemplo, borrar la lista anterior y reescribirla con el elemento que me faltaba. Pero tal vez esa no sea la mejor solución. La buena noticia es que, a diferencia de los strings, las listas son mutables. Esto significa que podemos modificar sus elementos sin tener que reescribir la lista completa. Y otra acción que podemos querer hacer es mirar por ejemplo, tal vez cuáles son los primeros dos elementos de la lista sin tener que imprimir la lista completa. También vamos a ver cómo acceder a distintas porciones de la lista. Entonces, el objetivo que vamos a seguir en esta lección será aprender cómo manipular elementos dentro de las listas. [AUDIO_EN_BLANCO] Una de las primeras acciones que haremos será acceder a estos elementos. Vamos a recordar primero que los elementos de una lista están ordenados, y eso implica que cada uno tiene un índice o posición que es única dentro de la lista, como podemos ver aquí. Y además, si nos fijamos, las posiciones todas se numeran partiendo desde cero. De esta manera, en nuestra lista de ejemplo, el string que dice Huevos tiene la posición 0, el string Palta tiene la posición 1, y así hasta el entero 7.000 que es el que tiene la posición número 4. Así una lista de cinco elementos tienen índices que van desde 0 hasta el 4. [SONIDO] Entonces, para acceder a una posición cualquiera de la lista, la manera de hacerlo es escribir primero el nombre de la lista y, a continuación, entre paréntesis, cuadrados, un entero con la posición que deseamos. Por ejemplo, aquí si queremos acceder al tercer elemento de la lista, entonces escribimos el nombre de la lista que se llama en este caso No olvidar y, a continuación, el índice con el número 2, you que no debemos olvidar que el primer índice siempre es el 0. Al ejecutar esto, imprime la posición 2 que tiene el string que dice Lechuga. [SONIDO] Pero también podemos acceder a secciones de la lista. Esto también se conoce como slices o trozos de la lista, usando la anotación que vemos en este ejemplo. Si escribimos el nombre de la lista, y en lugar de un índice escribimos ahora dos posiciones separadas por dos puntos, entonces obtenemos una sección de la lista original, y esta sección incluye los elementos desde la posición del primer índice 1, hasta la posición anterior al segundo índice, o sea, 3. Por ejemplo, si escribimos No olvidar, 1, dos puntos, 4, entonces vamos a obtener una lista con las posiciones desde la 1 hasta la 3. En este caso, los strings que dicen Palta, Lechuga, y Naranjas. [SONIDO] La noción general de slicing contempla tres enteros, separados por dos puntos. El primero de ellos nos indica la posición de inicio. El segundo, indica la posición posterior a la ultima que queremos seleccionar. Y el tercer entero, que también se me hace como step, indica cuántas posiciones avanzaremos antes de seleccionar el siguiente elemento. Así, por ejemplo, si tenemos esta lista Letras, que contiene las primeras diez letras del abecedario, vamos a anotar debajo de cada elemento su índice para poder determinar lo que hacen las siguientes instrucciones. Por ejemplo, la sección 2, dos puntos, 7, escribe todas las letras desde la posición 2, hasta la número 6. La sección 2, dos puntos, 7, dos puntos, 2, escribe lo mismo que la anterior, pero avanzamos dos posiciones antes de seleccionar el siguiente elemento, de manera que nos saltamos las posiciones con el número 3 y con el número 5. Si omitimos algunos de estos índices, entonces se considera que no hay límite. ¿Qué significa esto? Que si escribimos 7, dos puntos, y nada más, entonces se seleccionan las posiciones desde la número 7 hasta la que va al final de la lista. Y de la misma manera. Si omitimos el primer índice, entonces se considera desde el inicio de la lista. Por ejemplo, al escribir dos puntos, 5, dos puntos, 3, se selecciona desde 0 hasta la posición 4, pero avanzando de a tres elementos. Si escribimos ahora el rango 2, dos puntos, 2, esto será desde la posición 2 hasta la 1, y como no hay ningún elemento en ese rango, obtenemos una lista vacía. Finalmente, si especificamos el step como menos 1, o algún número negativo, entonces la lista se recorre en sentido inverso. Éste, en este último ejemplo, si escribimos dos puntos, dos puntos, menos 1, estamos pidiendo leer la lista completa, pero avanzando desde la última posición hacia la primera y con esto obtenemos la lista en sentido inverso. Y you que sabemos acceder a cada elemento de la lista, también podemos hacer un recorrido iterativo por la lista completa, usando la construcción for-in, tal como lo hacíamos con los strings. En este ejemplo que vemos aquí, al escribir, for, elemento, in, No olvidar, estamos diciendo que vamos a ejecutar una iteración por cada elemento que hay en la lista No olvidar, y que en ella vamos a decir que la variable elem va a tomar el valor de cada elemento de la lista de manera ordenada. De esta manera, al ejecutar este código, obtenemos una línea por cada elemento de la lista, e imprimimos el valor de cada posición. [SONIDO] [SONIDO] Finalmente, habíamos dicho que los elementos de una lista, a diferencia de las posiciones de un string, pueden ser modificados, esto significa que las listas son mutables. Por ejemplo, si nos damos cuenta que no necesitábamos agregar Palta a la lista, pero sí teníamos que agregar Queso, entonces podemos modificar el valor de la posición 1 de la lista, tal como lo haríamos como cualquier asignación. [SONIDO] Entonces, en esta lección, hemos visto, primero, cómo podemos acceder a un elemento individual de la lista usando su posición, su índice único. Hemos visto cómo podemos seleccionar un rango de elemento de la lista, y obtener una nueva lista usando la anotación de slicing. Hemos visto cómo recorrer los elementos de la lista usando la anotación for-in. Y finalmente, hemos visto cómo podemos modificar los valores de cada posición. Muchas gracias y los esperamos en la próxima lección. [MÚSICA]