[Tutor] Iterating over list of functions

Dave Angel davea at ieee.org
Thu May 21 04:37:31 CEST 2009


Robert Berman wrote:

> Thank you, Christian. This solution was one I was not expecting and am
> glad to receive it. It is one I will explore in greater detail later.
>
> Robert
>
>
> On Wed, 2009-05-20 at 16:44 +0200, Christian Witts wrote:
>   
>> Robert Berman wrote:
>>     
>>> Hi,
>>>
>>> Given a list of options: option_1.......option_n. For each option I have
>>> a corresponding function: func_1..... func_n. I have all function names
>>> defined in a list similar to flist = [func_1, func_2,.......func_n]
>>> which I know is a legitimate construct having found a similar  construct
>>> discussed by Kent Johnson in 2005.
>>>
>>> What I do not know how to do is to call the selected function. If the
>>> index of options is 1, then I want to call func_2; do I code
>>> flist[index]? I do not think Python has a branch indirect construct so I
>>> cannot use anything similar to that methodology.  What is the best
>>> approach to take to solve this problem?
>>>
>>> Thank you for any assistance, hints, solutions, and guidelines.
>>>
>>> Robert
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Tutor maillist  -  Tutor at python.org
>>> http://mail.python.org/mailman/listinfo/tutor
>>>
>>>   
>>>       
>> Why not use a dictionary to do the heavy lifting for you
>>
>>  >>> import string
>>  >>> funcs = {1:string.upper, 2:string.lower}
>>  >>> funcs[1]('this is a simple test')
>> 'THIS IS A SIMPLE TEST'
>>  >>> funcs[2]('THIS IS A SIMPLE TEST')
>> 'this is a simple test'
>>
>>     

(Your top-posting makes the thread hard to follow)

Note that once it's a dictionary, you can use whatever keys you would 
normally use in a dictionary.  For example, if the options are strings, 
use a string as the key.  If they literally are numbers, then a list is 
preferable, but a dictionary gives you other choices.

DaveA


More information about the Tutor mailing list