Parikshit Agarwal
Parikshit Agarwal

Reputation: 29

getting IndexError: list assignment index out of range

arr = [1]
arr[0] = arr.pop() 

giving me IndexError: list assignment index out of range i don't understand why?

Upvotes: 0

Views: 347

Answers (2)

wjandrea
wjandrea

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

ExplodingGayFish
ExplodingGayFish

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

Related Questions