Una lista es una colección de datos no necesariamente del mismo tipo que se los accede por medio de subíndices. La diferencia fundamental de una lista con una tupla es que podemos modificar la estructura luego de haberla creado.

Hay varias formas de crear una lista, la primera y más sencilla es enumerar sus elementos entre corchetes y separados por coma:

lista1=['juan','ana','luis']

Para acceder a sus elementos lo hacemos indicando un subíndice subíndice:

print lista1[0]

Como decíamos la diferencia con una tupla (son inmutables) es que podemos modificar la lista luego de creada:

lista1=[10,15,20]
print lista1
print '<br>'
lista1[0]=700 # modificamos el valor almacenado en la primer componente de la lista.
print lista1

De forma similar a las tuplas y string la función len nos informa de la cantidad de elementos que contiene la lista:

lista1=[10,15,20]
print len(lista1) # imprime un 3 

Es muy común emplear la estructura for in para recorrer y rescatar cada elemento de la lista, la variable elemento almacena en cada ciclo del for un elemento de la lista1, comenzando por el primer valor:

lista1=['juan',23,1.92]
for elemento in lista1:
    print elemento
    print '<br>'

Si queremos saber si un valor se encuentra en una lista existe un operador llamado in:

lista1=[12,45,1,2,5,4,3,55]
if 1 in lista1:
    print 'El valor 1 está contenido en la lista '
else:
    print 'El valor 1 no está contenido en la lista '
print lista1

Python define los operadores + y * para listas, el primero genera otra lista con la suma de elementos de la primer y segunda lista. El operador * genera una lista que repite tantas veces los elementos de la lista como indica el valor entero seguido al operador *.

lista1=[2,4,6,8]
lista2=[10,12,14,16]
listatotal=lista1+lista2
print listatotal

Luego empleando el operador *:

lista1=['juan','carlos']
producto=lista1*3
print producto

El resultado de este algoritmo es:

['juan', 'carlos', 'juan', 'carlos', 'juan', 'carlos'] 

También con listas podemos utilizar el concepto de porciones que nos brinda el lenguaje Python:

lista=[2,4,6,8,10]
print lista[2,4]   #[6, 8]
print lista[:3]    #[2, 4, 6]
print lista[3:]    #[8, 10] 

Como vimos podemos modificar el contenido de elementos de la lista asignándole otro valor:

lista=[2,4,6]
lista[1]=10
print lista  #[2, 10, 6]

Podemos borrar elementos de la lista utilizando la función del:

lista=[2,4,6]
del(lista[1])
print lista  #[2, 6]

Además podemos utilizar porciones para borrar un conjunto de elementos de la lista:

lista=[2,4,6]
del(lista[1:])
print lista  #[2]

También podemos añadir elementos a una lista:

lista=[5,10,11,12]
lista[1:1]=[6,7,8,9]
print lista #[5,6,7,8,9,10,11,12]

Problema resuelto

Definir una lista con edades de personas, luego borrar todos los elementos que sean menores a 18.



Problema Propuesto

Definir una lista con un conjunto de nombres, imprimir la cantidad de comienzan con la letra a:


nombres=['ariel','marcos','ana','luis','pedro','andres']
cant=0
for nom in nombres:
    if nom[0]=='a':
        cant=cant+1
print nombres
print '<br>'
print 'Cantidad de nombres que comienzan con a es:'
print cant

    
Ver solución