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:
- Reading Python File-Like Objects from C | Python
- Python | Index of Non-Zero elements in Python list
- Important differences between Python 2.x and Python 3.x with examples
- Python | Merge Python key values to list
- Python | Sort Python Dictionaries by Key or Value
- Python | Set 4 (Dictionary, Keywords in Python)
- Python | Add Logging to a Python Script
- Python | Add Logging to Python Libraries
- Python | Visualizing O(n) using Python
- JavaScript vs Python : Can Python Overtop JavaScript by 2020?
- pow() in Python
- chr() in Python
- Python Set | pop()
- SQL using Python | Set 1
- abs() 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.



