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