Schüle Daniel wrote: > Hello all, > > >>> p = "z%i = complex(1-1e-%i, 1-1e-%i)" > >>> lst = [p % (i,i,i) for i in range(10, 30)] > >>> for item in lst: > ... exec item > ... > >>> > >>> p = "z%i = complex(1-1e-%i, 1-1e-%i)" > >>> lst = [p % (i,i,i) for i in range(10, 30)] > >>> [exec item for item in lst] > File "<stdin>", line 1 > [exec item for item in lst] > ^ > SyntaxError: invalid syntax > >>> > > is this prohibited for some reasons or is this just happens to be > disallowed?
exec is a statement. And statements aren' allowed in the _expression_ of a list-comprehension. > this is one more cool way > >>> p = "z%i = complex(1-1e-%i, 1-1e-%i);" > >>> c = reduce(lambda x,y: x+y, [p % (i,i,i) for i in range(20,30)]) > >>> exec c > > and one more :) > >>> p = "z%i = complex(1-1e-%i, 1-1e-%i);" > >>> c = "".join([ p % (i,i,i) for i in range(20,30) ]) > >>> exec c If you think so :) Ususally people go for dictionaries in such cases. Diez -- http://mail.python.org/mailman/listinfo/python-list