Dr. Phillip M. Feldman schrieb:
Here's a simple-minded example:

def dumbfunc(xs):
   for x in xs:
      print x

This function works fine if xs is a list of floats, but not if it is single
float.  It can be made to work as follows:

def dumbfunc(xs):
   if isinstance(xs,(int,float,complex)): xs= [xs]
   for x in xs:
      print x

Having to put such extra logic into practically every function is one of the
annoying things about Python.

And where comes "len(xs)" into play here? What you want is iteration over scalars.

I do think that if you frequently have to write code like that, you are writing errorneous code.

But might that as it is, a simple


def iterable(i):
    if isinstance(i, (int, float, complex)):
       return [i]
    return i


is all you need. So you can write


for x in iterable(xs):


wherever you expect values to be either scalar or iterable.

Diez
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to