Programming Forums

Programming Forums (http://www.programmingforums.org/forumindex.php)
-   Python (http://www.programmingforums.org/forum43.html)
-   -   Clarification Nested Lists (http://www.programmingforums.org/showthread.php?t=11199)

flebber Aug 28th, 2006 9:43 AM

Clarification Nested Lists
 
Hello, I was reading Python Essential Reference by Beazley. It had the following example on nested lists
Quote:
a = [1,”Dave”,3.14, [“Mark”, 7, 9, [100,101]], 10]
a[1] # Retruns Dave
a[3][2] # Returns 9
a[3][3][1] # Returns 101


I just need to confirm something I am having trouble clarifying with the other docs I have found - I think maybe its too simple a question.

Could I reference 7 above with a[4] as well as a[3][1]? So again referring to the above example of a[3][3][1] returns 101 why couldn't it be referenced as a[6][1] or do I need a new [] to represent each nest in the list?

Finally could I negative reference a[-1] to equal 101 or does this create too much confusion ?

Arevos Aug 28th, 2006 9:59 AM

Quote:

Originally Posted by flebber
Could I reference 7 above with a[4] as well as a[3][1]? So again referring to the above example of a[3][3][1] returns 101 why couldn't it be referenced as a[6][1] or do I need a new [] to represent each nest in the list?

You seem to be in a bit of a muddle concerning how nested lists work. Let me try and illustrate the above example using a different approach that should make this more clear:
:

  1. c = [100, 101]
  2. b = ["Mark", 7, 9, c]
  3. a = [1, "Dave", 3.14, b, 10]
  4.  
  5. a[1]      # Returns Dave
  6. a[3]      # Returns the list referenced by b
  7. a[3][2]    # Returns b[2], which is 9
  8. a[3][3][1] # Returns b[3][1], which is the same as c[1], which is 101

Or, to put use an analogy, think of it as a set of boxes with compartments. Box c has two compartments, with 100 and 101 inside it. Box c sites inside the fourth compartment of box b, and box b sits in the fourth compartment of box a.

To get to box b, one must first open the relevant compartment of box a (in programming terms, that's what a[3] does). To get to box c, one must first open the relevant compartment of box b (which is b[3], or a[3][3], since a[3] is just another way of getting b).

Does that make it clearer?

Quote:

Originally Posted by flebber
Finally could I negative reference a[-1] to equal 101 or does this create too much confusion ?

a[-1] references the last element of a, which is 10.

flebber Aug 29th, 2006 7:09 AM

Thanks Arevos, thanks for the reply and clearing that up for me. I thought thats what it was but you know sometimes the simple things trip you up and can be the hardest things to find answers too.

Thanks Again

fleb

magnus.therning Aug 31st, 2006 11:24 AM

Just a small tip, python's interpreter has an interactive mode which you can use to get some hands-on experience with the basics of the language. Just run "python" on the command line.

I can recommend IPython as an "interactive python on steroids". :-)


All times are GMT -5. The time now is 1:13 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC