checking if a list is empty
Jon Clements
joncle at googlemail.com
Fri May 6 20:43:51 EDT 2011
On May 7, 12:51 am, Ian Kelly <ian.g.ke... at gmail.com> wrote:
> On Fri, May 6, 2011 at 4:21 PM, Philip Semanchuk <phi... at semanchuk.com> wrote:
> > What if it's not a list but a tuple or a numpy array? Often I just want to iterate through an element's items and I don't care if it's a list, set, etc. For instance, given this function definition --
>
> > def print_items(an_iterable):
> > if not an_iterable:
> > print "The iterable is empty"
> > else:
> > for item in an_iterable:
> > print item
>
> > I get the output I want with all of these calls:
> > print_items( list() )
> > print_items( tuple() )
> > print_items( set() )
> > print_items( numpy.array([]) )
>
> But sadly it fails on iterators:
> print_items(xrange(0))
> print_items(-x for x in [])
> print_items({}.iteritems())
My stab:
from itertools import chain
def print_it(iterable):
it = iter(iterable)
try:
head = next(it)
except StopIteration:
print 'Empty'
return
for el in chain( (head,), it ):
print el
Not sure if I'm truly happy with that though.
Jon
Jon.
More information about the Python-list
mailing list