2d lists

Jeff Epler jepler at unpythonic.net
Sat May 29 18:54:20 EDT 2004


Depending on your purposes, you may be looking for numarray[1].
>>> import numarray
>>> anArray = numarray.fromfunction(lambda x, y: x*y, (10,10))
>>> anArray
array([[ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
       [ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
       [ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18],
       [ 0,  3,  6,  9, 12, 15, 18, 21, 24, 27],
       [ 0,  4,  8, 12, 16, 20, 24, 28, 32, 36],
       [ 0,  5, 10, 15, 20, 25, 30, 35, 40, 45],
       [ 0,  6, 12, 18, 24, 30, 36, 42, 48, 54],
       [ 0,  7, 14, 21, 28, 35, 42, 49, 56, 63],
       [ 0,  8, 16, 24, 32, 40, 48, 56, 64, 72],
       [ 0,  9, 18, 27, 36, 45, 54, 63, 72, 81]])

A cheap trick is to use tuples as dict keys, which gets you a kind of
sparse N-dimensional array:
    aDict = {}
    for i in range(10):
        for j in range(10):
            aDict[i,j] = i*j

You can create your nested list with a nested list comprehension:
    aList = [ [ i * j for i in range(10) ] for j in range(10) ]
if you really want lists.

Jeff
[1] http://www.google.com/search?q=numarray
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-list/attachments/20040529/89988272/attachment.sig>


More information about the Python-list mailing list