Python | a += b is not always a = a + b
In python a += b doesn’t always behave the same way as a = a + b, same operands may give the different results under different conditions.
Consider these examples for list manipulation:
Example 1
list1 = [5, 4, 3, 2, 1] list2 = list1 list1 += [1, 2, 3, 4] print(list1) print(list2) |
chevron_right
filter_none
Output:
[5, 4, 3, 2, 1, 1, 2, 3, 4] [5, 4, 3, 2, 1, 1, 2, 3, 4]
Example 2
list1 = [5, 4, 3, 2, 1] list2 = list1 list1 = list1 + [1, 2, 3, 4] # Contents of list1 are same as above # program, but contents of list2 are # different. print(list1) print(list2) |
chevron_right
filter_none
Output:
[5, 4, 3, 2, 1, 1, 2, 3, 4] [5, 4, 3, 2, 1]
- expression list1 += [1, 2, 3, 4] modifies the list in-place, means it extends the list such that “list1” and “list2” still have the reference to the same list.
- expression list1 = list1 + [1, 2, 3, 4] creates a new list and changes “list1” reference to that new list and “list2” still refer to the old list.
Recommended Posts:
- Important differences between Python 2.x and Python 3.x with examples
- Python | Set 4 (Dictionary, Keywords in Python)
- Python | Sort Python Dictionaries by Key or Value
- max() and min() in Python
- chr() in Python
- set add() in python
- Python Set | pop()
- bin() in Python
- zip() in Python
- Any & All in Python
- gcd() in Python
- abs() in Python
- SHA in Python
- try and except in Python
- pow() in Python
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



