Re: [Python-Dev] List insert at index that is well out of range - behaves like append

2014年9月15日 15:48:12 -0700

On 15/09/2014 23:29, Mark Shannon wrote:
On 15/09/14 12:31, Tal Einat wrote:
On Mon, Sep 15, 2014 at 6:18 AM, Harish Tech <[email protected]>
wrote:
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 .
Hello Harish,
The appropriate place to ask questions like this is python-list [1],
or perhaps Stack Overflow.
I think this is an OK forum for this question.
If someone isn't sure if something is a bug or not, then why not ask
here before reporting it on the bug tracker?
This does seem strange behaviour, and the documentation for list.insert
gives no clue as to why this behaviour was chosen.
Cheers,
Mark.
I assume it's based on the concepts of slicing. From the docs "s.insert(i, x) - inserts x into s at the index given by i (same as s[i:i] = [x])". Although shouldn't that read s[i:i+1] = [x] ?
--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.
Mark Lawrence
_______________________________________________
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to