Python provides many friendly advanced API for programmer, one of which is unpacking. By unpacking, it means getting all the elements from a container. A simplest case in the below demonstrates assigns the two items in tuple to variables.
>>> a, b = (1,2)
>>> a
1
>>> b
2
Besides tuple, every iterative object can support unpacking, such as list, dictionary, set, string, generator etc. Let’s traverse them one by one.
List Unpacking Link to heading
>>> a, b, c = [1,2,3]
>>> a,b,c
(1,2,3)
Sometimes when we only care about certain parts of a list when unpacking, a dummy variable like _ is used as placeholder, as in the example below.
>>> a, _, c = [1,2,3]
>>> a,c
(1,3)
String Unpacking Link to heading
>>> a,b,c = "abc"
>>> a,b,c,
('a', 'b', 'c')
Dictionary Unpacking Link to heading
>>> a, b, c = {"a":1, "b":2, "c":3}
>>> a,b,c,
('a', 'b', 'c')
After unpacking, the values in the previous dictionary are discarded.
Multiple Assignment Link to heading
Actually, multiple assignment is also a unpacking since the right side of equal sign is a tuple.
>>> a, b = 1, 2
>>> a
1
>>> b
2
So you can infer that swapping two variables also involves unpacking.
>>> a, b = 1, 2
>>> a, b = b, a
>>> a
2
>>> b
1
A veteran may query what would happened if the numbers of two sides are not equal? The answer is a ValueError.
>>> a, b, c = [1, 2, 3, 4]
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-21-1abe27b4224b> in <module>()
----> 1 a, b, c = [1, 2, 3, 4]
ValueError: too many values to unpack (expected 3)
We can avoid this situation by * operator introduced by Python 3.
>>> a, b, *c = [1,2,3,4]
>>> a
1
>>> b
2
>>> c
[3, 4]
>>>
A more further question is how about using * in the middle of variables. Yes, Python is so smart.
>>> a, *b, c = [1,2,3,4]
>>> a
1
>>> b
[2, 3]
>>> c
4
You can also do the same thing to a dictionary.
>>> a, *b, c = {"a":1, "b":2, "c":3,"d":4}
>>> b
['b', 'c']
For more about * and **, please switch to *args and **kwargs Usage in Python
Reference