[Python-Dev] an oddball alternative name for enumerate()
Michael McLay
mclay@nist.gov
Fri, 26 Apr 2002 12:20:41 -0400
On Friday 26 April 2002 10:33 am, Andrew Koenig wrote:
> What does the function do? It attaches a serial number to each
> element of a sequence. So my first thought was that it should
> be named serialize(), but of course that sounds like it's related
> to parallel processing.
>
> But what about inventory()? My mental image is of someone going
> around with a bunch of numbered stickers, attaching one to
> every relevant object.
Inventory is a creative alternative, but it brings to mind the tallying of
occurances of each item.
The process of adding a serial number to something is an indexing operation.
A non-programmer, who's job requires very precise use of language, thought
indexing was the most appropriate term for the task as described. Cataloging
was suggested as a weak second, but that term generally applies to assigning
numbers to physical items. Assigning unique identifiers to abstract objects,
such as laws or chemical compounds, is an indexing process.
Unfortunately the PEP has rejected all varations of the term index:
All of the names involving 'index' clashed with usage in database
languages where indexing implies a sorting operation rather than
linear sequencing.
This seems like a weak reason for rejecting the accurate use of the term
index in Python. Only people who use databases will think the term index
means to sort. Python is a general purpose language. Many Python users will
not find the usage confusing and will find all of the alternative terms
confusing.
I searched the Python document, using Thomas Heller's nifty "Index for Python
manuals". There are 8 uses of the term index and none of them have to do
with a sorting operation of a database.
http://starship.python.net/crew/theller/pyhelp.cgi?keyword=index
I also searched for 'indexing'. There were 0 hits on that term. I would
suggest 'indexing' is the term that most closely describes the action of the
function. My apologies to the database community for any confusion this might
cause them. (Never mind they misused the term in the first place. If they
ment sort then they should have used the word sort.)
If indexing is still rejected then I will continue to be +0 on using
serialize.