python - How to check if an iterable can be traversed again? -


consider following code:

def my_fun(an_iterable):   val in an_iterable:     do_work(val)     if some_cond(val):        do_some_other_work(an_iterable)        break 

if an_iterable list/tuple, do_some_other_work whole list again. if an_iterable iterator or generator, receive rest of items in list. how differentiate between 2 cases? want do_some_other_work receive rest of items only.

there's no general way tell whether can iterate on object repeatedly. file-like objects, in particular, screw checks. fortunately, don't need check this. if want make sure do_some_other_work gets rest of items, can explicitly request iterator:

def my_fun(iterable):     iterable = iter(iterable)     # whatever. 

Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -