That is what I was missing,<br clear="all">Thanks<br>Vincent Davis<br><br>
<br><br><div class="gmail_quote">On Thu, Feb 5, 2009 at 8:37 PM, Rhodri James <span dir="ltr"><<a href="mailto:rhodri@wildebst.demon.co.uk">rhodri@wildebst.demon.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="Ih2E3d">On Fri, 06 Feb 2009 03:03:01 -0000, Vincent Davis <<a href="mailto:vincent@vincentdavis.net" target="_blank">vincent@vincentdavis.net</a>> wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Is it correct that if I want to return multiple objects from a function I<br>
need to in some way combine them?<br>
def test1():<br>
    a = [1,3,5,7]<br>
    b = [2,4,6,8]<br>
    c=[a,b]<br>
   return a, b # this does not work?<br>
   return [a, b] # does not work?<br>
   return c # this works but I don't like it, , is there a better way?<br>
</blockquote>
<br></div>
Strictly speaking, you can only return one object from a function.  However,<br>
that one object can be a container (list, tuple, dict, set, or what have<br>
you) that contains multiple objects.  Tuples are a popular choice:<br>
<br>
  return a, b<br>
<br>
...but almost any ordered type would do, because you can automagically<br>
unpack the results if you want to:<br>
<br>
  x, y = test1()<br>
<br>
(You might be expecting brackets around the "a, b" and the "x, y", and<br>
you'd be sort of right.  The brackets (parentheses) for tuples are<br>
optional, except for a couple of cases where you *have* to put them<br>
in to avoid ambiguity.  I tend to put them in always, but leaving them<br>
out in cases like this seems to be normal practice.)<br>
<br>
-- <br>
Rhodri James *-* Wildebeeste Herder to the Masses<br><font color="#888888">
--<br>
<a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
</font></blockquote></div><br>