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

Tal Einat taleinat at gmail.com
Mon Sep 15 13:31:22 CEST 2014


On Mon, Sep 15, 2014 at 6:18 AM, Harish Tech <technews.full at gmail.com> 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.

If you meant to suggest changing the behavior of Python in such cases,
you should first discuss this on python-list, and then post a clearly
written suggestion to python-ideas [2].

This list, python-dev, is used for discussing the development *of* the
Python language.

See the "Python Mailing Lists" page [3] for more information.

Regards,
- Tal Einat

..[1]: http://mail.python.org/mailman/listinfo/python-list
..[2]: http://mail.python.org/mailman/listinfo/python-ideas
..[3]: https://www.python.org/community/lists/


More information about the Python-Dev mailing list