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 <[email protected]>
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 <[email protected]>
> 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" <[email protected]>
>> 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 <+256%20776%20468213>
>> 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
>> [email protected]
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>>
>>
>
>
> --
> Joannah Nanjekye
> +256776468213 <+256%20776%20468213>
> 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
> [email protected]
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
>
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to