listas

=Listas= Una lista ( **list** ) es un tipo de objeto de Python que contiene a su vez otros datos (¡incluso otras listas!). La sintaxis es sencilla. Se escriben esos datos contenidos entre corchetes y separados por comas: code format="python" >>> lista = [3, 'pedro', 2.5, tango] code La lista anterior tiene 4 elementos; un número entero (3), una string ('pedro'), un número decimal (2.5) y una variable (tango, que si almacena, pongamos el valor 5, será éste el que se almacene en la lista). Pueden añadirse valores a la lista con el método **append**: code format="python" >>> lista = [1,3,5] >>> lista.append(7) >>> lista [1, 3, 5, 7] code Y pueden eliminarse con el método **remove** (de hecho, se elimina la primera aparición del elemento indicado): code format="python" >>> lista.remove(3) [1, 5, 7] code

Una lista vacía se indica con unos corchetes vacíos. code format="python" >>> listaVacia = [] code Y aquí hay un ejemplo de una lista que contiene a otra: code format="python" >>> listaAnidada = ['Lost', [4, 8, 15, 16, 23, 42]] code La lista anterior tiene como primer elemento el texto 'Lost' y como segundo elemento una lista de números.

Python numera los elementos de una lista, en realidad, comenzando por el 0 y no por el 1. Así que en la primera lista, el elemento número 0 sería el número 3 y el elemento número 1 sería la cadena de texto 'pedro'. En Python esto se escribe así code format="python" >>> lista[0] 3 >>> lista[1] 'pedro' code es decir, para averiguar un elemento de una lista se pone el nombre de la lista seguido del número de elemento entre corchetes. También se pueden numerar desde el final (usando números negativos). En tal caso, el último elemento es el -1, el penúltimo -2, etc. code format="python" >>> listaAnidada[-1] [4, 8, 15, 16, 23, 42] >>> listaAnidada[-2] 'Lost' code Intenta entender lo siguiente: code format="python" >>> listaAnidada[1][2] 15 code ¿Lo entiendes? El elemento número 1 de la lista Anidada es otra lista. Así que lo anterior quiere decir 'el elemento número 2 del elemento número 1 de la lista Anidada'. Otra forma de manipular listas son los '**slices**' (particiones). Es algo extraño al principio, no te preocupes: code format="python" >>> perdidos = [4, 8, 15, 16, 23, 42] >>> perdidos[0:3] [4, 8, 15] code Dos números separados por dos puntos indican que ha de extraerse parte de la lista. ¿Que parte? La parte que **empieza** por el **primer número** y **acaba** con el **anterior del segundo**. El 0 de perdidos[0:3] indica que he de empezar por el elemento número 0, es decir, el 4. El 3 de perdidos[0:3] indica que hemos determinar en el elemento anterior al número 3, es decir, el elemento número 2 que es 15. Por lo tanto, la lista extraída es [4, 8, 15] Más ejemplos: code format="python" >>> perdidos[2:5] [15, 16, 23] code (... esto es, del elemento número 2 al elemento número 4...) code format="python" >>> perdidos[3:] [16, 23, 42] code (... si no se indica el segundo número, la lista extraída va hasta el final... code format="python" >>> perdidos[:3] [4, 8, 15] code (... si no se indica el primero, comienza desde el principio de la lista...) code format="python" >>> perdidos[:] [4, 8, 15, 16, 23, 42] code (...¡y si no se indica ningún número, se devuelve toda la lista!) En los slices puede emplearse un tercer número que indica de cuantos en cuantos hay que tomar los elementos. Fíjate: code format="python" >>> perdidos[1:5] [8, 15, 16, 23] >>> perdidos[1:5:1] [8, 15, 16, 23] >>> perdidos[1:5:2] [8, 16]

code Como podemos ver el slice [1:5:1] es exactamente lo mismo que [1:5] pues indicamos que extraiga los números de 1 en 1, es decir, todos. Por su parte, el slice [1:5:2] indica que se extraigan de dos en dos lo que tiene como resultado que se omita el 15 y el 23. Ni que decir tiene que ese tercer valor del slice puede ser un número negativo, en cuyo caso la cuenta se hace hacia atrás.