Re: lista de índices para lista multiple

Chema Cortes pych3m4 en gmail.com
Sab Mayo 13 21:56:30 CEST 2006


2006/5/13, Tny <a.porrua en gmail.com>:
> supongamos que tenemos una lista que contiene listas que contiene listas
> ... que contienen None (por ejemplo)
>
>
> algo así como.
> b=[[[[None], [None], [None]], [[None], [None]], [[[None], [None],
> [None]], [[None], [None]], [[None], [None], [None]]]], [[[None], [None],
> [None]], [[None], [None]], [[[None], [None], [None]], [[None], [None]],
> [[None], [None], [None]]]], [[None], [None]]]
>
> y supongamos que tenemos una lista de indices
>
> x=[x_1,x_2,x_3]
>
> ¿como se puede hacer para hacer ((b[x_1])[x_2])[x_3]. de una manera
> rápida y sencilla cuando el tamaño de x se sabe en tiempo de ejecución?
> b[x] no vale

Lo más rápido:

r=b
for i in x:
  r=r[i]

Si lo quieres mejor, crea una clase derivada de "list" y sobrecarga el
método __getitem__ y entonces sí que podrás hacer b[x]




Más información sobre la lista de distribución Python-es