Assignment to slice

R

Rich Krauter

I do not understand why python behaves the way it does
in the following code:

Here, Python doesn't like that I'm assigning
out-of-range. OK. That's fine.
Traceback (most recent call last):
File "<interactive input>", line 1, in ?
IndexError: list assignment index out of range

However, the following seems very strange. Assigning
to a slice, over non-existent array indexes, sets x[0]
and x[1].
x[2:5] = [3,4]
x [3,4]
x[1000:9000] = [5]
x
[3, 4, 5]

Why does assigning to a slice of non-existent array
elements fill in the array, starting with the first
empty array position? (Acts like [].append() or
[].extend()?)

Why not raise an out-of-bounds exception here too?
Wouldn't that be more consistent with the first case,
in which I tried to assign out-of-range, and got an
exception?

IMO, at least the first index in the slice should be
required to exist in the array. If not, raise an
exception. That way, assigning to the slice fills in
the array in a predicatable way without having to do
len() checks first to ensure that you know where in
the array the slice is actually going to be inserted.

But I'm sure it is the way it is for a good reason.
Hopefully someone can clue me in.

Thank you in advance.

Rich




__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top