Is there a better way to code variable number of return arguments?

Jack Norton jack at
Thu Oct 8 20:26:37 CEST 2009

Dr. Phillip M. Feldman wrote:
> I currently have a function that uses a list internally but then returns the
> list items as separate return
> values as follows:
> if len(result)==1: return result[0]
> if len(result)==2: return result[0], result[1]
> (and so on).  Is there a cleaner way to accomplish the same thing?
How about using yield and then iterate over the answer:

def some_fun():
 \t    for result in some_loopable_stuff:
 \t\t         yield result

Then call it thusly:

for i in some_fun()
   result = i

-Jack (PS, sorry to the OP, you will get two of these -- I forgot to CC 
the list)

More information about the Python-list mailing list