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! _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor