"Variable variable name" or "variable lvalue"
Peter Otten
__peter__ at web.de
Wed Aug 15 16:19:30 EDT 2007
mfglinux wrote:
> Hello to everybody
>
> I would like to know how to declare in python a "variable name" that
> it is in turn a variable
> In bash shell I would wrote sthg like:
>
> for x in `seq 1 3`
> do
> M$i=Material(x) #Material is a python class
> done
In Python you would build a list instead of inventing variable names:
numbers = [12.5, 25, 12.5]
materials = []
for x in numbers:
materials.append(Material(x))
> Why I need this? Cause I have a python module that obliges me to build
> a variable called Period, which should have a variable name of
> summands (depends on the value of x)
>
> #Let's say x=3, then Period definition is
> Period=Slab(Material1(12.5)+Material2(25)+Material3(12.5)) #Slab is a
> python class
>
> I dont know how to automatize last piece of code for any x
You can use another loop to to "sum" over the materials and then feed the
result to the Slab constructor:
accu = materials[0]
for material in materials[1:]:
accu += material
period = Slab(accu)
If you want to simplify things somewhat you can merge the two loops into
one:
numbers = [12.5, 25, 12.5]
accu = Material(numbers[0])
for x in numbers[1:]:
accu += Material(x)
period = Slab(accu)
Or you try your hands on a bit of functional programming:
from operator import add
numbers = [12.5, 25, 12.5]
period = Slab(reduce(add, (Material(x) for x in numbers)))
Peter
More information about the Python-list
mailing list