lunes, 21 de septiembre de 2009

Listas
El concepto de secuencia es muy potente y no se limita a las cadenas. Python nos permite definir
secuencias de valores de cualquier tipo. Por ejemplo, podemos definir secuencias de n´umeros
enteros o flotantes, o incluso de cadenas. Hablamos entonces de listas. En una lista podemos,
por ejemplo, registrar las notas de los estudiantes de una clase, la evoluci´on de la temperatura
hora a hora, los coeficientes de un polinomio, la relaci´on de nombres de personas asistentes a
una reuni´on, etc.
Python sigue una notaci´on especial para representar las listas. Los valores de una lista deben
estar encerrados entre corchetes y separados por comas. He aqu´ı una lista con los n´umeros del
1 al 3:
>>> [1, 2, 3] 
[1, 2, 3]
Podemos asignar listas a variables:
>>> a = [1, 2, 3] 
>>> a 
[1, 2, 3]

Los elementos que forman una lista tambi´en pueden ser cadenas.
>>> nombres = [’Juan’, ’Antonia’, ’Luis’, ’Mar´ıa’] 
Y tambi´en podemos usar expresiones para calcular el valor de cada elemento de una lista:
>>> a = [1, 1+1, 6/2] 
>>> a 
[1, 2, 3]
Python almacena las listas del mismo modo que las cadenas: mediante referencias (punteros)
a la secuencia de elementos. As´ı, el ´ultimo ejemplo hace que la memoria presente un aspecto
como el que muestra el siguiente diagrama:
a 1
0
2
1
3
2
La asignaci´on a una variable del contenido de otra variable que almacena una (referencia a
una) lista supone la copia de, ´unicamente, su referencia, as´ı que ambas acaban apuntando a la
misma zona de memoria:
>>> a = [1, 2, 3] 
>>> b = a 
a 1
0
2
1
3
2
b
La lista que contiene un s´olo elemento presenta un aspecto curioso:
>>> a = [10] 
>>> b = 10

a 1
0
2
1
3
2
b
La lista que contiene un s´olo elemento presenta un aspecto curioso:
>>> a = [10] 
>>> b = 10 
a 10
0
b 10
Observa que no es lo mismo [10] que 10. [10] es la lista cuyo ´unico elemento es el entero 10, y
10 es el entero 10. Gr´aficamente lo hemos destacado enmarcando la lista y disponiendo encima
de la celda su ´ındice. Si pedimos a Python que nos muestre el contenido de las variables a y b,
veremos que la representaci´on de la lista que contiene un escalar y la del escalar son diferentes:
>>> print a 
[10]
>>> print b 
10
La lista siempre se muestra encerrada entre corchetes.
Del mismo modo que hay una cadena vac´ıa, existe tambi´en una lista vac´ıa. La lista vac´ıa se
denota as´ı: [] y la representamos gr´aficamente como la cadena vac´ıa:
>>> a = [] 
a
>>> print a 
[]

No hay comentarios:

Publicar un comentario