In Python, the = operator is used to assign values to variables.
a = 100 b = 200 print(a) # 100 print(b) # 200
You can assign values to multiple variables in one line.
You can assign multiple values to multiple variables by separating them with commas , .
a, b = 100, 200 print(a) # 100 print(b) # 200
You can assign values to more than three variables, and it is also possible to assign values of different data types to those variables.
a, b, c = 0.1, 100, 'string' print(a) # 0.1 print(b) # 100 print(c) # string
When only one variable is on the left side, values on the right side are assigned as a tuple to that variable.
a = 100, 200 print(a) print(type(a)) # (100, 200) #
If the number of variables on the left does not match the number of values on the right, a ValueError occurs. You can assign the remaining values as a list by prefixing the variable name with * .
# a, b = 100, 200, 300 # ValueError: too many values to unpack (expected 2) # a, b, c = 100, 200 # ValueError: not enough values to unpack (expected 3, got 2)
a, *b = 100, 200, 300 print(a) print(type(a)) # 100 # print(b) print(type(b)) # [200, 300] #
*a, b = 100, 200, 300 print(a) print(type(a)) # [100, 200] # print(b) print(type(b)) # 300 #
For more information on using * and assigning elements of a tuple and list to multiple variables, see the following article.
You can also swap the values of multiple variables in the same way. See the following article for details:
You can assign the same value to multiple variables by using = consecutively.
For example, this is useful when initializing multiple variables with the same value.
a = b = 100 print(a) # 100 print(b) # 100
After assigning the same value, you can assign a different value to one of these variables. As described later, be cautious when assigning mutable objects such as list and dict .
a = 200 print(a) # 200 print(b) # 100
You can apply the same method when assigning the same value to three or more variables.
a = b = c = 'string' print(a) # string print(b) # string print(c) # string
Be careful when assigning mutable objects such as list and dict .
If you use = consecutively, the same object is assigned to all variables. Therefore, if you change the value of an element or add a new element in one variable, the changes will be reflected in the others as well.
a = b = [0, 1, 2] print(a is b) # True a[0] = 100 print(a) # [100, 1, 2] print(b) # [100, 1, 2]
b = [0, 1, 2] a = b print(a is b) # True a[0] = 100 print(a) # [100, 1, 2] print(b) # [100, 1, 2]
If you want to handle mutable objects separately, you need to assign them individually.
after c = []; d = [] , c and d are guaranteed to refer to two different, unique, newly created empty lists. (Note that c = d = [] assigns the same object to both c and d .) 3. Data model — Python 3.11.3 documentation
a = [0, 1, 2] b = [0, 1, 2] print(a is b) # False a[0] = 100 print(a) # [100, 1, 2] print(b) # [0, 1, 2]
You can also use copy() or deepcopy() from the copy module to make shallow and deep copies. See the following article.