Velocity Reviews > List of lists of lists of lists...

# List of lists of lists of lists...

=?UTF-8?B?w4FuZ2VsIEd1dGnDqXJyZXogUm9kcsOtZ3Vleg==?=
Guest
Posts: n/a

 05-08-2006
I would like to have a list of lists N times deep, and my solution is (in
pseudocode):

def deep(x):
a=[x]
return a

mylist=[]
for N: mylist=deep(mylist)

Is there a more elegant way to do it?

The maine idea is: from a list having the numbre of steps along N
dimensions, generate a list with an item at each possible point.

Example 1: N=2 list=[2,3] result=[[1,2],[1,2],[1,2]]
Example 2: N=3 list=[3,1,2] result=[[[1,2,3]],[[1,2,3]]]
--
ﾃ］gel Gutiﾃｩrrez Rodrﾃ*guez - http://www.velocityreviews.com/forums/(E-Mail Removed)
Instituto de Ciencia de los Materiales de Madrid - CSIC
SpLine - European Syncrothorn Radiation Facility - Grenoble - France

Postal adress: Departamento de Quﾃ*mica Fﾃ*sica y Analﾃ*tica
Universidad de Oviedo - c/Juliﾃ｡n Claverﾃ*a 8 33006 - Oviedo
Asturias - Spain
E-mail: (E-Mail Removed) Telf.: +34-985103687

bruno at modulix
Guest
Posts: n/a

 05-09-2006
ﾃ］gel Gutiﾃｩrrez Rodrﾃ*guez wrote:
> I would like to have a list of lists N times deep, and my solution is (in
> pseudocode):
>
> def deep(x):
> a=[x]
> return a

Hint : what's exactly the difference between deep(x) and [x] ?

> mylist=[]
> for N: mylist=deep(mylist)
>
> Is there a more elegant way to do it?

for N:
mylist = [mylist]

> The maine idea is: from a list having the numbre of steps along N
> dimensions, generate a list with an item at each possible point.
>
> Example 1: N=2 list=[2,3] result=[[1,2],[1,2],[1,2]]
> Example 2: N=3 list=[3,1,2] result=[[[1,2,3]],[[1,2,3]]]

I'm afraid I don't understand. Could you forgive my stupidity and
re-explain this a bit more clearly ?

--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in '(E-Mail Removed)'.split('@')])"

James Stroud
Guest
Posts: n/a

 05-10-2006
ﾃ］gel Gutiﾃｩrrez Rodrﾃ*guez wrote:
> I would like to have a list of lists N times deep, and my solution is (in
> pseudocode):
>
> def deep(x):
> a=[x]
> return a
>
> mylist=[]
> for N: mylist=deep(mylist)
>
> Is there a more elegant way to do it?
>
> The maine idea is: from a list having the numbre of steps along N
> dimensions, generate a list with an item at each possible point.
>
> Example 1: N=2 list=[2,3] result=[[1,2],[1,2],[1,2]]
> Example 2: N=3 list=[3,1,2] result=[[[1,2,3]],[[1,2,3]]]

Numarray does this sort of thing, but you have to familiarize yourself
with its indexing conventions:

py> import numarray
py> numarray.ones((3,2))
array([[1, 1],
[1, 1],
[1, 1]])
py> numarray.ones((1,2,3))
array([[[1, 1, 1],
[1, 1, 1]]])

James

--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

http://www.jamesstroud.com/

Robert Kern
Guest
Posts: n/a

 05-10-2006
James Stroud wrote:

> Numarray does this sort of thing, but you have to familiarize yourself
> with its indexing conventions:
>
> py> import numarray
> py> numarray.ones((3,2))
> array([[1, 1],
> [1, 1],
> [1, 1]])
> py> numarray.ones((1,2,3))
> array([[[1, 1, 1],
> [1, 1, 1]]])

numpy is the successor to numarray, so if you are just starting with arrays,
please get started with numpy. It should also be noted that numpy can create
arrays of objects as well as arrays of numbers.

In [1]: from numpy import *

In [2]: empty((1,2,3), dtype=object)
Out[2]:
array([[[None, None, None],
[None, None, None]]], dtype=object)

http://numeric.scipy.org

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
an underlying truth."
-- Umberto Eco

=?UTF-8?B?w4FuZ2VsIEd1dGnDqXJyZXogUm9kcsOtZ3Vleg==?=
Guest
Posts: n/a

 05-15-2006
bruno at modulix wrote:

> for N:
> mylist = [mylist]
>

Right that!

> I'm afraid I don't understand. Could you forgive my stupidity and
> re-explain this a bit more clearly ?
>

No need to. Former solution worked fine. Thanks!
--
ﾃ］gel Gutiﾃｩrrez Rodrﾃ*guez - (E-Mail Removed)
Instituto de Ciencia de los Materiales de Madrid - CSIC
SpLine - European Syncrothorn Radiation Facility - Grenoble - France

Postal adress: Departamento de Quﾃ*mica Fﾃ*sica y Analﾃ*tica
Universidad de Oviedo - c/Juliﾃ｡n Claverﾃ*a 8 33006 - Oviedo
Asturias - Spain
E-mail: (E-Mail Removed) Telf.: +34-985103687

=?UTF-8?B?w4FuZ2VsIEd1dGnDqXJyZXogUm9kcsOtZ3Vleg==?=
Guest
Posts: n/a

 05-15-2006
Robert Kern wrote:
> James Stroud wrote:
> http://numeric.scipy.org
>

Thanks! That's anotehr solution, yes!
--
ﾃ］gel Gutiﾃｩrrez Rodrﾃ*guez - (E-Mail Removed)
Instituto de Ciencia de los Materiales de Madrid - CSIC
SpLine - European Syncrothorn Radiation Facility - Grenoble - France

Postal adress: Departamento de Quﾃ*mica Fﾃ*sica y Analﾃ*tica
Universidad de Oviedo - c/Juliﾃ｡n Claverﾃ*a 8 33006 - Oviedo
Asturias - Spain
E-mail: (E-Mail Removed) Telf.: +34-985103687