[exec cmd for cmd in cmds]

Diez B. Roggisch deets at nospam.web.de
Wed Mar 8 06:35:44 EST 2006


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



More information about the Python-list mailing list