This is called tuple unpacking.
In [24]: x,y = 0,1
In [25]: print(x)
0
In [26]: print(y)
1
You can do this for any sequence. In the above, you are in-line specifying a tuple with (0,1). You can also unpack, say, an iterable:
In [28]: a,b,c = range(3)
In [29]: a
Out[29]: 0
In [30]: b
Out[30]: 1
In [31]: c
Out[31]: 2
but you have to make sure that the number of arguments you provide to unpack makes sense.
In [32]: a,b = range(3)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/home/ben/<ipython-input-32-ec703b8346af> in <module>()
----> 1 a,b = range(3)
ValueError: too many values to unpack (expected 2)
In [33]: a,b,c,d = range(3)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/home/ben/<ipython-input-33-16ef42f82877> in <module>()
----> 1 a,b,c,d = range(3)
ValueError: need more than 3 values to unpack
Note that (and this is the part that seems to be confusing you) the right side is evaluated before the left side. This allows for the common idiom:
In [34]: x = 0
In [35]: y = 1
In [36]: x,y = y,x