[Python-Dev] Lockstep iteration - eureka!
Just van Rossum
just@letterror.com
Wed, 9 Aug 2000 16:01:18 +0100
At 7:49 AM -0500 09-08-2000, Guido van Rossum wrote:
>In the past there were syntax proposals, e.g. ``for i
>indexing s''. Maybe you and Just can draft a PEP?
PEP: 1716099-3
Title: Index-enhanced sequence iteration
Version: $Revision: 1.1 $
Owner: Someone-with-commit-rights
Python-Version: 2.0
Status: Incomplete
Introduction
This PEP proposes a way to more conveniently iterate over a
sequence and its indices.
Features
It adds an optional clause to the 'for' statement:
for <index> indexing <element> in <seq>:
...
This is equivalent to (see the zip() PEP):
for <index>, <element> in zip(range(len(seq)), seq):
...
Except no new list is created.
Mechanism
The index of the current element in a for-loop already
exists in the implementation, however, it is not reachable
from Python. The new 'indexing' keyword merely exposes the
internal counter.
Implementation
Implementation should be trivial for anyone named Guido,
Tim or Thomas. Justs better not try.
Advantages:
Less code needed for this common operation, which is
currently most often written as:
for index in range(len(seq)):
element = seq[i]
...
Disadvantages:
It will break that one person's code that uses "indexing"
as a variable name.
Copyright
This document has been placed in the public domain.
Local Variables:
mode: indented-text
indent-tabs-mode: nil
End: