a += b is not always same as a = a + b in Python
In Python A += B does not always behave the same way A = A+B, the same operand can give different results in different situations.
Lets see this by an example
Example :
list1
=
[6,
5
,
4
,
3
,
2
,
1
]
list2
=
list1
list1
+
=
[
1
,
2
,
3
,
4, 5
]
print
(list1)
print
(list2)
Output:
[6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5] [6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5]
Example :
list1
=
[6,
5
,
4
,
3
,
2
,
1
]
list2
=
list1
list1
=
list1
+
[
1
,
2
,
3
,
4. 5
]
print
(list1)
print
(list2)
Output:
[6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5]
[6, 5, 4, 3, 2, 1]
expression is list1 += [1, 2, 3, 4, 5] actually modifies the list in-place, means it extends the list such that “list1” and “list2” still have the reference to the same list.
expression is list1 = list1 + [1, 2, 3, 4, 5] creates a new list and changes “list1” reference to that new list and “list2” still refer to old list.
In this article i have explained that
a += b is not always a = a + b
Next Article : Difference between == and is operator
0 Comments
If you have any doubt, Please let me know.