Thanks for posting this. I picked up a few useful hints; particularly I'd missed the rather handy enumerate function. Also, I'll be thinking more of using generators to flatten nested loops into a single loop.
To loop one has to have iterable in the first place whereas often we get scalar value instead. That's why I find it useful to have this kind of "adapter":
def as_iterable(input,
scalar_types=(basestring,),
empty_types=(types.NoneType,)):
if isinstance(input, empty_types):
return ()
else:
if isinstance(input, scalar_types):
return (input,)
else:
return iter(input)
Comments
Add a comment: