[Tutor] Using a string to get at a Variable

Isr Gish isrgish at fusemail.com
Mon Jan 19 22:07:21 EST 2004


Thanks Danny,
I appreciate your help, I'll look into it.

-----Original Message-----
   >From: "Danny Yoo"<dyoo at hkn.eecs.berkeley.edu>
   >Sent: 1/19/04 2:16:04 AM
   >To: "Isr Gish"<isrgish at fusemail.com>
   >Cc: "tutor at python.org"<tutor at python.org>
   >Subject: Re: [Tutor] Using a string to get at a Variable
   >
   >> I don't understand the code you wrote, and what exactly its supposed to
   >> do. But this is what I'm looking for.
   >>
   >> apples = 10
   >> grapes = 5
   >> pears = 8
   >> fruits = ['apples', 'grapes', 'pears']
   >> Now Iswant to be able to do something like this.
   >> for fruit in fruits:
   >> 	print 'You heve %d' % (fruit), fruit
   >>
   >> And the output should look like this:
   >> You have 10 apples
   >> You have 5 grapes
   >> You have 8 pears
   >>
   >> Thanks for the reply and if anyone can help it would be appreciated.
   >
   >
   >Hi Isr,
   >
   >You may want to look at dictionaries:
   >
   >    http://www.ibiblio.org/obp/thinkCSpy/chap10.htm
   >
   >And by "may", I emphatically mean "You really should look at
   >dictionaries."  *grin*
   >
   >
   >Instead of using the separate variables 'apples', 'grapes', and 'pears',
   >we can use a dictionary to collect them all together:
   >
   >###
   >>>> fruitbasket = {}
   >>>> fruitbasket['apples'] = 10
   >>>> fruitbasket['grapes'] = 5
   >>>> fruitbasket['pears'] = 8
   >###
   >
   >
   >
   >We can take a look at the fruitbasket as a whole:
   >
   >###
   >>>> fruitbasket
   >{'pears': 8, 'apples': 10, 'grapes': 5}
   >###
   >
   >or just pick individual fruits out by name:
   >
   >###
   >>>> fruitbasket['pears']
   >8
   >>>> fruitbasket['grapes']
   >5
   >###
   >
   >
   >Play around with dictionaries more, and you should see how to use them to
   >make your program run well.
   >
   >
   >The solution with eval() that you found does work, but it is, well...
   >truthfully speaking, very nonstandard...  *grin*  Dictionaries are a
   >concept in almost all programming languages, whereas eval() is not so
   >widespread.  You'll get better mileage out of understanding dictionaries.
   >
   >
   >Good luck to you!
   >
   >




More information about the Tutor mailing list