Skip to content
Related Articles

Related Articles

Difference Between x = x + y and x += y in Python

View Discussion
Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 10 May, 2020
View Discussion
Improve Article
Save Article

We often use x += y instead of x = x + y. So, are they same or different? Let’s Find it here.

Example 1:




x = [1, 2]
another_x = x
y = [3]
  
x += y
  
print(x)
print(another_x)

Output:

[1, 2, 3]
[1, 2, 3]

Example 2:




x = [1, 2]
another_x = x
y = [3]
  
x = x + y
  
print(x)
print(another_x)

Output:

[1, 2, 3]
[1, 2]

So here we find that both codes are almost similar but still there are difference in the outputs. So the reason behind this is that for many types of objects, x += y will modify the object referred to by x in-place, whereas x = x + y will create a new object and reassign x to it. This distinction is important if you still have another reference to the object somewhere like in this case another_a is another reference to the object.

However, many objects such as numbers and strings are “immutable” – they can’t be modified in-place – and for those objects, x += y and x = x + y will typically do exactly the same thing. But if you write your own class you can customize what + and += do when used with objects of that class, and you can make them do completely different things if you really want to.

Example 3:




x = "12345"
another_x = x
y = "67890"
  
x += y
  
print(x)
print(another_x)

Output:

1234567890
12345

Example 4:




x = "12345"
another_x = x
y = "67890"
  
x = x + y
  
print(x)
print(another_x)

Output:

1234567890
12345

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!