Reputation: 29
arr = [1]
arr[0] = arr.pop()
giving me IndexError: list assignment index out of range i don't understand why?
Upvotes: 0
Views: 347
Reputation: 33179
The right-hand side of an assignment statement is evaluated before the left-hand side. So the list is empty when you try to assign at index 0.
You could rewrite your code roughly as:
arr = [1]
popped = arr.pop()
arr[0] = popped
Upvotes: 0
Reputation: 2897
By calling arr.pop()
it makes arr
change to []
, so after that if you try retrieving / chaging item at index 0
it will be out of range since its size is 0
Upvotes: 7