Python Assignment (=) Operator

Create and run the following Python program

x1 = 1
x2 = 2

x1 = x2

print('x1={}, x2={}'.format(x1,x2))

print('--------------------------------------------------')

x1 = 1
x2 = 2

x2,x1 = x1,x2

print('x1={}, x2={}'.format(x1,x2))

print('--------------------------------------------------')

x1 = 1
x2 = 2
x3 = 3

x3,x2,x1 = x1,x3,x2

print('x1={}, x2={}, x3={}'.format(x1,x2,x3))

print('--------------------------------------------------')

x1 = 1
x2 = 2
x3 = 3
x4 = 4

x3,x2,x1 = x1,x3,x2,x4

print('x1={}, x2={}, x3={}, x4={}'.format(x1,x2,x3,x4))

print('--------------------------------------------------')

a = ['a', 'b', 'c', 'd' ]

x1,x2,x3,x4 = a

print('x1={}, x2={}, x3={}, x4={}'.format(x1,x2,x3,x4))

print('--------------------------------------------------')

x1,x2 = a

print('x1={}, x2={}'.format(x1,x2))

What happened? Why?