Open In App

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

Last Updated : 10 May, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

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


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads