This is an unusual python thing. Implicit tuple creation.
Here you create an anonymous tuple on the right.
x,y,z = [1,2,3], [4,5,6], [7,8,9]
This is a similar code:
a, b = 1, 2
same:
a, b = (1, 2)
or
a = 1 b = 2
This allows you to use a common python trick (idiom). You can change values without a temporary variable:
a, b = b, a
The same thing happens when the key and dictionary values interact:
for i, j in my_dict.items(): print i, j
In your code, a different temporary tuple is created in the for loop:
for a,b,c in (x,y,z): print(a,b,c)
It means:
for a, b,c in ([1,2,3], [4,5,6], [7,8,9]): print(a,b,c)
In other words: rewrite this code for something more legible. Python does not perform its own mantra: Explicit is better than implicit.
By the way, see the fun Python Zen by typing import this in the Python shell.