lunes, 4 de febrero de 2008

Listas

Las listas son una de las claves para hacer juegos, una lista es una especie de contenedor que sirve para agrupar datos, una especie de lo que vendria siendo un array en otro en lenguaje pero altamente dinamico. Una lista se declara de la siguiente manera:

nombre_de_lista = []

Se le puede asignar valores iniciales y estos valores no tienen porque ser del mismo tipo

cosas = ["mesas", "comida", 23, 2]

Si quisieramos acceder a los elementos de una lista, podemos accederlo a traves de su indice, tal como si fuera un array, o sea si escribimos cosas[0], obtendriamos como resultado el string mesas.

si quisieramos recorrer completamente la lista lo podemos hacer de la siguiente manera:

#Codigo---
for elemento in cosas:
print elemento

#-----

con ese codigo podemos escribir toda la informacion que hay en la lista.

Si quisieras cambiar algun valor en la lista basta con saber su indice, o sea el lugar en que esta en la lista, debes recordar que la enumeracion empieza desde 0 y no de 1 y que por lo tanto el ultimo valor es el tamaño de la lista menos uno. Pues si intentas acceder a un valor que no existe el programa se cerrar. Supongamos que queremos cambiar el tercer elemento de la lista, entonces basta con cosas[2] = "nuevo elemento"

Existe otro tipo de contenedor que se llama tupla, las tuplas o mas genericamente conocidas como n-plas, son mas livianas que las listas, pero no soportan reasignacion, si la idea simplemente es contener datos utiliza una tupla, pero si quieres estar cambiando los valores, utiliza una lista.

Como ultimo me falta explicar como se agregan y se sacan datos de las listas, esto se hace a traves de la funcion append, para agregar un dato seria cosas.append("nueva cosa").
Para remover el dato basta con cosas.remove("nueva cosa"), tambien es posible remover el ultimo valor utilizando al funcion pop, o sea cosas.pop(), nos retornaria el ultimo valor, veamos un ultimo ejemplo para ver si quedo todo claro.

#Codigo---
a = [] # Creamos una lista vacia
a.append(1) # Agregamos un elemento
a.append(2)
print a # Esto nos mostraria en la pantalla [1,2]
print a[0] # Esto nos mostraria el numero 1 en la pantalla
b = a.pop
print b # Esto nos mostraria el numero 2 en la pantalla
#---------------

Tambien es posible copiar una lista a otra lista, se hace de la siguiente forma:

a = [1,2,3,4,5]
b = a

Este tipo de copia tiener una caracteristica especial, se llama copia por referencia, es muy rapido pero como consecuencia tiene que si yo modifico a o b, tambien modifico la otra lista, ejemplo:

a = [1,2,3,4,5]
b = a
a[0] = 5
print b
>>> [5,1,2,3,4,5]

Hay una segunda forma de copiar una lista, y es haciendolo por valor, aunque podrias poner los elementos 1 a 1, iterando la primera lista y haciendo appends a la segunda vacia, hay una forma aun mas comoda y es la siguiente

b = a[:]

Los dejo hasta aca, mucha suerte que tengan un buen dia.

No hay comentarios: