[Tutor] Using a string to get at a Variable

Isr Gish isrgish at fusemail.com
Mon Jan 19 00:37:59 EST 2004


-----Original Message-----
   >From: "hcohen2"<hcohen2 at comcast.net>
   >Sent: 1/18/04 9:29:03 PM
   >To: "Isr Gish"<isrgish at fusemail.com>
   >Cc: "Tutor"<tutor at python.org>
   >Subject: Re: [Tutor] Using a string to get at a Variable
   >
   >Isr Gish wrote:
   >
   >>I'm trying to get the data from a variable using a string.
   >>For example I have three variables named apples, grapes, pears. Then I have a list with these 3 names as strings.
   >>Now I would like to do a loop on the list and getsthe data from each name.
   >>
   >>Any help would be greatly appreciated.
   >>
   >>Thanks in Advance
   >>
   >>---------------
   >>Isr Gish
   >>
   >>
   >>_______________________________________________
   >>Tutor maillist  -  Tutor at python.org
   >>http://mail.python.org/mailman/listinfo/tutor
   >>
   >>  
   >>
   >Ist,
   >
   >You are not very explicit on either on what you on working with nor the 
   >sort of object that contains the data you are seeking to extract, hence, 
   >I will just outline an example of my own design.
   >
   >Let's say you get you set of variables as a tuple: (var_1, var_2, ..., 
   >var_n) - I am going to assume these variables are names of lists.  So I 
   >see no real need to convert them to strings.  If that is indeed 
   >necessary, skip the entire discussion.
   >
   >#Intermediate result
   >names_tuple = (var_1, var_2, ..., var_n)
   >len_tuple = len(names_tuple)
   >for j in range(len_tuple):
   >        try:
   >                len_obj = len(var_j)
   >                for i in range(len_obj):
   >                        value_of_obj(i) = var_i[i]
   >                         try:
   >                                print 'Show me the value of %s' %   
   >names_tuple[j],
   >                                print var_i[i]
   >                                # Or do whatever you have in mind, e.g. 
   >storing in a dictionary, etc.
   >                         except ValueError, TypeError, diag:      # 
   >regarding the errors I am guessing
   >                               print str(diag)
   >       except TypeError, RangeError, diag:
   >                 print str(diag)
   >
   >I am not sure how useful you will find this nor how close it is to 
   >solving the problem you are attacking - just recognize I am new at 
   >python.  Moreover, I may miss the clues to the type of problem, since my 
   >specialty is databases and much of the discussion here leaves me a bit 
   >puzzled as to where they are being applied.
   >
   >In any case, I hope it helps a bit.
   >Herschel
   >

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.

Isr Gish




More information about the Tutor mailing list