472,334 Members | 2,347 Online

# list of lists

Hi,

I have a list that consists of lists.
E.g. T=[[1, 2, 3], [4, 5], [6]]
Is there a way to address the a specific component in the "inner" list
directly?
E.g. right now I want to get the second value of the first list.
Unfortunately I have to save it to a variable first and then read it.
a = T[0]
print a[1]

That kind of sucks, becaus I have to read a lot of values from a lot of
lists! :-(
Is there a faster way than my saving it to a "help variable" first?

Thanks folks!!

Regards, Tom

Jul 18 '05 #1
10 16995
In article <bk**********@news.uni-kl.de>, Tom wrote:
Hi,

I have a list that consists of lists.
E.g. T=[[1, 2, 3], [4, 5], [6]]
Is there a way to address the a specific component in the "inner" list
directly?
E.g. right now I want to get the second value of the first list.
Unfortunately I have to save it to a variable first and then read it.
a = T[0]
print a[1]

That kind of sucks, becaus I have to read a lot of values from a lot of
lists! :-(
Is there a faster way than my saving it to a "help variable" first?

T=[[1, 2, 3], [4, 5], [6]]
print T[0][1]

Zach
Jul 18 '05 #2
On Mon, 15 Sep 2003 15:59:56 +0200, Tom wrote:
Hi,

I have a list that consists of lists. E.g. T=[[1, 2, 3], [4, 5], [6]]
Is there a way to address the a specific component in the "inner" list
directly?
E.g. right now I want to get the second value of the first list.
Unfortunately I have to save it to a variable first and then read it. a =
T[0]
print a[1]

Try using T[0][1]. T[0] is exactly equivalent to 'a', so you can use
the same operations, you don't have to assign to 'a' first.

Johannes
Jul 18 '05 #3
Tom wrote:
Hi,

I have a list that consists of lists.
E.g. T=[[1, 2, 3], [4, 5], [6]]
Is there a way to address the a specific component in the "inner" list
directly?
E.g. right now I want to get the second value of the first list.
Unfortunately I have to save it to a variable first and then read it.
a = T[0]
print a[1]

That kind of sucks, becaus I have to read a lot of values from a lot of
lists! :-(
Is there a faster way than my saving it to a "help variable" first?

Thanks folks!!

Regards, Tom

them all. If I'm guessing right:

def flatten(lol):
for lst in lol:
for item in lst:
yield item

T=[[1, 2, 3], [4, 5], [6]]

for item in flatten(T):
print item

Indices seem to be a dying breed :-)

Peter
Jul 18 '05 #4
On Mon, 15 Sep 2003, Tom wrote:
Hi,

I have a list that consists of lists.
E.g. T=[[1, 2, 3], [4, 5], [6]]
Is there a way to address the a specific component in the "inner" list
directly?
E.g. right now I want to get the second value of the first list.
Unfortunately I have to save it to a variable first and then read it.
a = T[0]
print a[1]

That kind of sucks, becaus I have to read a lot of values from a lot of
lists! :-(
Is there a faster way than my saving it to a "help variable" first?

Thanks folks!!

Regards, Tom

Hi Tom,

Do you mean this?
T=[[1, 2, 3], [4, 5], [6]]
T[0][1] 2 print T[0][1] 2 print T[1][1]

5

HTH,

--
Paul Osman
pa**@eval.ca
http://perl.eval.ca

"Idealists...foolish enough to throw caution
to the winds...have advanced mankind and have
enriched the world."
- Emma Goldman

Jul 18 '05 #5

Do you mean this:
T=[[1, 2, 3], [4, 5], [6]]
print T[0][1]

2

--

=*= Lukasz Pankowski =*=
Jul 18 '05 #6
On Mon, 15 Sep 2003 15:59:56 +0200, Tom <ll****@gmx.net> wrote:
I have a list that consists of lists.
E.g. T=[[1, 2, 3], [4, 5], [6]]
Is there a way to address the a specific component in the "inner" list
directly?
E.g. right now I want to get the second value of the first list.
Unfortunately I have to save it to a variable first and then read it.
a = T[0]
print a[1]

That kind of sucks, becaus I have to read a lot of values from a lot of
lists! :-(
Is there a faster way than my saving it to a "help variable" first?

T=[[1, 2, 3], [4, 5], [6]]
print t[0][1]

2

Daniel Klein
Jul 18 '05 #7
Hi guys,

thanks to everyone.
My mistake was that I had no idea that writing [][] NEXT to each other
goes into depth. I always tried different varieties of [[]] to get into
the deeper lists!
Thanks again.

CU Tom

Jul 18 '05 #8
Tom wrote:
Hi guys,

thanks to everyone.
My mistake was that I had no idea that writing [][] NEXT to each
other goes into depth. I always tried different varieties of [[]]
to get into the deeper lists!
Thanks again.

It's a simple concept, once you grasp it, but for those new to
Python, it may be worth emphasizing -- You can concatenate
operators (to the right, at least) and these operators will
operate on the run-time value produced by the expression
to which they are applied. For example (read from bottom up):
getArray()[3].formatter()
^ ^ ^ ^ ^
| | | | |
| | | | attribute
| | | +-------------- (4) access attribute of object indexed
| | | from array
| | +---------------- (3) index element of array returned by
| | function call
| binding
+------------------------ (1) retrieve value bound to variable
It is also worth thinking about what is meant by saying that this
evaluation is *dynamic*. For example, if the object returned by
the function call to getArray (above) is not indexable, then the []
operator will fail.

And, the only limiting factor is confusion.

Dave

--
Dave Kuhlman
http://www.rexx.com/~dkuhlman
dk******@rexx.com
Jul 18 '05 #9
Dave Kuhlman wrote:
It's a simple concept, once you grasp it, but for those new to
Python, it may be worth emphasizing -- You can concatenate
operators (to the right, at least) and these operators will
operate on the run-time value produced by the expression
to which they are applied. For example (read from bottom up):
getArray()[3].formatter()
^ ^ ^ ^ ^
| | | | |
| | | | attribute
| | | +-------------- (4) access attribute of object indexed
| | | from array
| | +---------------- (3) index element of array returned by
| | function call
| binding
+------------------------ (1) retrieve value bound to variable
It is also worth thinking about what is meant by saying that this
evaluation is *dynamic*. For example, if the object returned by
the function call to getArray (above) is not indexable, then the []
operator will fail.

And, the only limiting factor is confusion.

Nice explanation. I take the occasion to warn newbies that the sort() method
is a showstopper in this scheme:

^
|
+ -- sort() returns None

By the way, is there any Python programmer who has not made this error at
least once?

Peter
Jul 18 '05 #10
Peter Otten wrote:
Nice explanation. I take the occasion to warn newbies that the sort() method
is a showstopper in this scheme:

^
|
+ -- sort() returns None

By the way, is there any Python programmer who has not made this error at
least once?

Also it is a slower approach if you want to look up more than one item
in the list. In that case it is better to bind the sorted result of
getArray to a variable.

arr = getArray()
arr.sort()
arr[3].formatter()
arr[4].formatter()
arr[5].formatter()
So I find that I rarely use the short form of the expression.

regards Max M

Jul 18 '05 #11

This thread has been closed and replies have been disabled. Please start a new discussion.