Thanks Abe for the insight.

On Thu, Jun 8, 2017 at 11:27 PM, Abe Dillon <abedillon@gmail.com> wrote:
Welcome to the group, Joannah!

Now that you've been introduced to packing and unpacking in Python, I would suggest learning the complete syntax, because it's a very useful feature.

>>> a, b = "hi"  # you can unpack any iterable
>>> a
'h'
>>> b
'i'

>>> a, b = 1, 2  # this is the same as: a, b = (1, 2)
>>> a
1
>>> b
2

>>> a, (b, c) = [1, (2, 3)]  # you can unpack nested iterables using parentheses
>>> first, *rest = "spam"  # you can use '*' to capture multiple elements
>>> first
's'
>>> rest
'pam'

>>> *rest, last = "eggs" # which elements are captured by `*` is implied by the other assignment targets
>>> rest
'egg'
>>> last
's'

>>> first, second, *middle, before_last, last = "lumberjack"
>>> first
'l'
>>> second
'u'
>>> middle
'mberja'
>>> before_last
'c'
>>> last
'k'

>>> a, b, *c = range(2)  # a '*' variable can be empty
>>> c
[]

>>> a, b, *c, d, e = range(3)  # the number of non-star variables has to make sense
ValueError

>>> a, *b, c, *d = "african swallow"  # multiple '*'s are FORBIDDEN!
SyntaxError

>>> a, *b = 1, 2, 3, 4, 5   # NOTE: Most itterables unpack starred variables as a list
>>> type(b)
<class 'list'>

>>> a, *b = {1, 2, 3, 4, 5}
>>> type(b)
<class 'list'>

>>> a, *b = [1, 2, 3, 4, 5]
>>> type(b)
<class 'list'>

>>> a, *b = dict(zip("spam", range(4)))
>>> type(b)
<class 'list'>

>>> a, *b = "except strings"
>>> type(b)
<class 'str'>

All of these rules apply just as well to assignment targets in for-loops:

>>> for num, (first, *rest) in {1: "dead", 2: "parrot"}.items():
...   print("num=%r, first=%r, rest=%r"%(num, first, rest))
...
num=1, first='d', rest='ead'
num=2, first='p', rest='arrot'


Hope that helps!

On Thu, Jun 8, 2017 at 7:22 AM, joannah nanjekye <nanjekyejoannah@gmail.com> wrote:
Thanks for response on automatic tuple unpack. My bad I dint know about this all along.

Infact this works same way Go does. I have been analyzing why we would really need such a function (allow function to return multiple types) in python given we have this feature( automatic tuple unpack) and have not yet got good ground. When I come across good ground I will talk about it.

So I will say this automatic tuple unpack pretty much works for my needs.

Thanks

On Thu, Jun 1, 2017 at 5:21 PM, Markus Meskanen <markusmeskanen@gmail.com> wrote:
Why isn't a tuple enough? You can do automatic tuple unpack:

    v1, v2 = return_multiplevalues(1, 2)


On Jun 1, 2017 17:18, "joannah nanjekye" <nanjekyejoannah@gmail.com> wrote:
Hello Team,

I am Joannah. I am currently working on a book on python compatibility and publishing it with apress. I have worked with python for a while we are talking about four years.

Today I was writing an example snippet for the book and needed to write a function that returns two values something like this:

def return_multiplevalues(num1, num2):
     return num1, num2

 I noticed that this actually returns a tuple of the values which I did not want in the first place.I wanted python to return two values in their own types so I can work with them as they are but here I was stuck with working around a tuple.

My proposal is we provide a way of functions returning multiple values. This has been implemented in languages like Go and I have found many cases where I needed and used such a functionality. I wish for this convenience in python so that I don't  have to suffer going around a tuple.

I will appreciate discussing this. You may also bring to light any current way of returning multiple values from a function that I may not know of in python if there is.

Kind regards,
Joannah

--
Joannah Nanjekye
+256776468213
F : Nanjekye Captain Joannah
S : joannah.nanjekye
T : @Captain_Joannah
SO : joannah

"You think you know when you learn, are more sure when you can write, even more when you can teach, but certain when you can program."
Alan J. Perlis

_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/





--
Joannah Nanjekye
+256776468213
F : Nanjekye Captain Joannah
S : joannah.nanjekye
T : @Captain_Joannah
SO : joannah

"You think you know when you learn, are more sure when you can write, even more when you can teach, but certain when you can program."
Alan J. Perlis

_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/





--
Joannah Nanjekye
+256776468213
F : Nanjekye Captain Joannah
S : joannah.nanjekye
T : @Captain_Joannah
SO : joannah

"You think you know when you learn, are more sure when you can write, even more when you can teach, but certain when you can program."
Alan J. Perlis