[Tutor] Using lists as table-like structure

Bernard Lebel 3dbernard at gmail.com
Thu Nov 17 16:53:14 CET 2005


Thanks to everyone for the answers. I'll definitely check Numeric Python.


Cheers
Bernard




On 11/16/05, Danny Yoo <dyoo at hkn.eecs.berkeley.edu> wrote:
>
>
> On Wed, 16 Nov 2005, Bernard Lebel wrote:
>
> > Let say I have a list of lists. Each individual lists have a bunch of
> > elements. Now I would like to either get or set the first element of
> > each individual list. I could do a loop and/or list comprehension, but I
> > was wondering if it was possible with something like:
> >
> > aList = [ [1,1,1], [2,2,2,], [3,3,3] ]
> > aList[:][0] = 10
>
>
> Hi Bernard,
>
> I think I see what you're trying to do; you're trying to clear the first
> column of each row in your matrix.  Unfortunately, this is not done so
> easily in standard Python.  However, if you use the third-party Numeric
> Python (numarray) package, you can use its array type to do what you want.
>
>
> > If I print aList[:], I get the list with the nested sublists.
> >
> > >>> aList[:]
> > [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
>
> Yes, sounds good so far.
>
>
> > But as soon as I introduce the [0], in an attempt to access the first
> > element of each sublist, I get the first sublist in its entirety:
> >
> > >>> aList[:][0]
> > [1, 1, 1]
>
>
> Let's do a quick substitution model thing here.  You mentioned earlier
> that:
>
> > >>> aList[:]
> > [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
>
> So if we just plug that value into aList[:][0]:
>
>      aList[:][0]  ==>  [[1, 1, 1,], [2, 2, 2], [3, 3, 3]] [0]
>
> then we see that we're just asking for the first element of aList[:],
> which is [1, 1, 1].
>
>
>
> > I would have hoped to get something like [1, 2, 3]
>
> Take a look into Numeric Python: it'll give you the row/column slicing
> operations that you're expecting.  As a concrete example:
>
> ######
> >>> import numarray
> >>> a = numarray.array([[1, 2, 3],
> ...                     [4, 5, 6],
> ...                     [7, 8, 9]])
> >>> a[:, 0]
> array([1, 4, 7])
> >>> a[:, 1]
> array([2, 5, 8])
> >>> a[:, 2]
> array([3, 6, 9])
> ######
>
>
> Best of wishes!
>
>


More information about the Tutor mailing list