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:
>>> lista = [3, 'pedro', 2.5, tango]
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:
>>> lista = [1,3,5]
>>> lista.append(7)
>>> lista
[1, 3, 5, 7]
Y pueden eliminarse con el método remove (de hecho, se elimina la primera aparición del elemento indicado):
>>> lista.remove(3)
[1, 5, 7]

Una lista vacía se indica con unos corchetes vacíos.
>>> listaVacia = []
Y aquí hay un ejemplo de una lista que contiene a otra:
>>> listaAnidada = ['Lost', [4, 8, 15, 16, 23, 42]]
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í
>>> lista[0]
3
>>> lista[1]
'pedro'
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.
>>> listaAnidada[-1]
[4, 8, 15, 16, 23, 42]
>>> listaAnidada[-2]
'Lost'
Intenta entender lo siguiente:
>>> listaAnidada[1][2]
15
¿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:
>>> perdidos = [4, 8, 15, 16, 23, 42]
>>> perdidos[0:3]
[4, 8, 15]
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:
>>> perdidos[2:5]
[15, 16, 23]
(... esto es, del elemento número 2 al elemento número 4...)
>>> perdidos[3:]
[16, 23, 42]
(... si no se indica el segundo número, la lista extraída va hasta el final...
>>> perdidos[:3]
[4, 8, 15]
(... si no se indica el primero, comienza desde el principio de la lista...)
>>> perdidos[:]
[4, 8, 15, 16, 23, 42]
(...¡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:
>>> perdidos[1:5]
[8, 15, 16, 23]
>>> perdidos[1:5:1]
[8, 15, 16, 23]
>>> perdidos[1:5:2]
[8, 16]
 
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.