Creating variables on the fly...

William Park parkw at better.net
Sun Apr 2 16:12:29 EDT 2000


On Mon, Apr 03, 2000 at 03:16:03PM -0400, Matthew Hirsch wrote:
> Hi All,
> 
> Let's say I have four variables: 
> 
> a=1
> b=2
> c=3
> d=4
> 
> And I have a function that adds these variables together:
> 
> def add(a,b,c,d):
>    return a+b+c+d
> 
> But now let's say I have twenty variables that I want to add together.  
> This function will no longer work.  I would have to rewrite it as 
> a+b+c+d+e+f+g+...+(20th letter).  Is there a way to dynamically create a 
> variable name?  So that my add function can automatically determine how 
> many variable names to create and then add the values together.  In 
> other words, I'd ideally like something like:
> 
> 
> def add(number_of_variables):
>    return a+b+c+...+(letter corresponding to number_of_variables)
> 
> Thanks for your help,
> 
> Matt

Straightforward approach is 
    def add(*argv):
	<Add each element of tuple 'argv' in a loop>

    sum = add(a, b, c, ...)

Or, you can use dictionary,
    def add(**argv):
	<Add each element of dictionary 'argv' in a loop>

    sum = add(a=a, b=b, ...)
    
--William




More information about the Python-list mailing list