[Python-Dev] List insert at index that is well out of range - behaves like append (original) (raw)

Harish Tech technews.full at gmail.com
Mon Sep 15 05🔞21 CEST 2014


I had a list

a = [1, 2, 3]

when I did

a.insert(100, 100)

[1, 2, 3, 100]

as list was originally of size 4 and I was trying to insert value at index 100 , it behaved like append instead of throwing any errors as I was trying to insert in an index that did not even existed .

Should it not throw

IndexError: list assignment index out of range

exception as it throws when I attempt doing

a[100] = 100

Question : 1. Any idea Why has it been designed to silently handle this instead of informing the user with an exception ?

Personal Opinion : Lets see how other dynamic languages behave in such a situation : Ruby :

> a = [1, 2]

> a[100] = 100

> a

=> [1, 2, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 100]

The way ruby handles this is pretty clear and sounds meaningful (and this is how I expected to behave and it behaved as per my expectation) at least to me . So what I felt was either it should throw exception or do the way ruby handles it .

Is ruby way of handling not the obvious way ?

I even raised it in stackoverflow http://stackoverflow.com/questions/25840177/list-insert-at-index-that-is-well-out-of-range-behaves-like-append

and got some responses . -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20140915/ac35a505/attachment.html>



More information about the Python-Dev mailing list