[pyar] Tamaño de un arreglo definido dinamicamente
Claudio Freire
klaussfreire en gmail.com
Mar Ago 10 17:09:35 ART 2010
2010/8/10 Gonzalo <gonchi.sanchez en gmail.com>
> Hola a tod en s, les comento que lo que quiero hacer en realidad no se si
> se puede (no soy experto en python ni mucho menos), y no leí nada en
> la doc que me lo impida (o permita) hacer, el problema es que se queja
> el intérprete.
>
> Quiero definir el tamaño de un arreglo, en tiempo de ejecución, es decir:
> def set_dificultad(self, x):
> self.tamanio = x
> k = 0
> while k<x:
> self.vr[k] = VACIO
>
Asumamos por un momento que self.vr es, en efecto, una lista.
(en python se llaman listas, no arreglos, pero se entiende tu punto).
Incluso asumiendo eso, self.vr[k] va a fallar (con IndexError) si es que 'k'
no es un índice *pre-existente* en la lista.
(si self.vr es un diccionario, todo bien).
> Y esto, no me deja hacer:
> AttributeError: fmgui instance has no attribute 'vr'
>
Pero self.vr ni es una lista. Self.vr *no es*. Eso es lo que te dice el
error.
> Ok, entonces lo defino:
> self.vr
> (aca me da el mismo error)
>
Porque ahí no estás definiendo nada. Tenés que *asignarle algo* para
definir...
> self.vr = 0 #esto en la clase principal
>
Eso es definir.
> Luego cuando llamo al método:
> TypeError: 'int' object does not support item assignment
>
Porque lo definiste como un número (0), no como una lista.
Vos quisiste decir, seguramente, self.vr = [] # <- lista vacía
Aún así, self.vr[k] va a fallar. Porque la lista está vacía y no tiene el
elemento 'k'.
Si querés agregarle un elemento a una lista, probás self.vr.append(algo)
O, si querés crear una lista con N elementos todos seteados a None:
self.vr = [None] * N
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100810/ec3c1419/attachment.html>
More information about the pyar
mailing list