conditional for-statement

Francesco Bochicchio bieffe62 at gmail.com
Sun Aug 23 04:30:16 EDT 2009


On Aug 23, 10:09 am, seb <sdemen... at gmail.com> wrote:
> Hi,
>
> i was wondering if there is a syntax alike:
>
> for i in range(10) if i > 5:
>     print i
>
> equivalent to
>
> for i in (for i in range(10) if i>5):
>     print i
>
> sebastien

AFAIK, no syntax fo that. But the standard syntax is not too
different:

for i in range(0):
    if i > 5 : print i

Or you can use itertools.ifilter:

for i in itertools.ifilter( lambda x: x > 5, range(10) ):
     print i

Or, if you define a function corresponding to the loop body, you could
do something like:

map( print, (i for i in range(10) if i> 5 )) # only works if print is
a function



Ciao
----
FB






More information about the Python-list mailing list