On Aug 7, 2010, at 5:46 AM, Vito 'ZeD' De Tullio wrote:
Default User wrote:

From "the emperor's new clothes" department:

1) Why do Python lists start with element [0], instead of element [1]? "Common sense" would seem to suggest that lists should start with [1].

http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html

I think the reason why is just historical; C uses zero-based indices. In C, an array index is an offset with respect to the pointer that the array variable actually is, so 0 makes sense (my_array[0] == *my_array).

I'm not convinceed (yet) by Dijkstra's reasoning. *Maybe* if you want to describe a range with two </<='s, it makes sense. But Python (nor C, nor ...) uses that notation. I agree with the OP that the first item in a list would most naturally be called item 1, and therefore have index 1. (This doesn't mean I'm in favor of 1-based indices)

One of the reasons I like python so much, is that you (almost) never have to use indices. Normally you just iterate over the elements. If I ever need indices, it's a strong indication that I actually want a dictionary.

Cheers, Roald


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to