Python execute code only if for loop did not begin iteration (with generator)? -


the else block in for/else clause gets executed if iteration finishes not interrupted break, so read.

is there language construct let me write executes if for loop did not begin iteration? if using tuple or list, this:

if seq:     x in seq:          # else:     # else 

but when use generator, don't behavior want:

>>> g = (x x in range(2)) >>> x in g: ...     print x ... else: ...     print "done" ...  0 1 done    # don't want "done" here >>> g = (x x in range(2) if x > 1) >>> if g: ...     x in g: ...         print x ... else: ...     print "done" ...  >>>     # expecting "done" here 

how can without exhausting creating tuple or list generator, while using for loop? use next() in while loop , try catch stopiteration, i'd see if there's nice way for.

i can't think of better way updating boolean inside loop.

any_results = false x in g:     any_results = true     print x if not any_results:     print 'done' 

Comments

Popular posts from this blog

image - ClassNotFoundException when add a prebuilt apk into system.img in android -

I need to import mysql 5.1 to 5.5? -

Java, Hibernate, MySQL - store UTC date-time -