[Python-ideas] Indicate if an iterable is ordered or not
Eric Snow
ericsnowcurrently at gmail.com
Wed Sep 25 01:10:38 CEST 2013
FYI, at this point I not longer have a use case for this feature, and
I'm not in favor of this idea without one.
On Tue, Sep 24, 2013 at 3:16 PM, Terry Reedy <tjreedy at udel.edu> wrote:
> The iterator protocol is intentionally simple. It only requires an __iter__
> method or a __next__ method with a standard __iter__ method. This makes
> iterables -- and generator functions that produce iterators -- easy to
> write.
This is not a proposal for an addition to the iterator protocol. It
is about indicating (without iterating) that the iteration order of
instances of a particular class will be consistent.
> A generator instance may and may not produce items in an intented order, so
> a class attribute is not possible. The same is generally true of transform
> iterators, like map and filter instances, and most itertools classes. It is
> also not true that lists (and tuples) always have a significant order.
> list(set) has the artificial order of set iteration. Both are reiterable
> with the same order. Why would you call one True and the other False? In
> general, list(iterable) has as much order as the iterable.
However, once values are added to the list, that order is consistent.
-eric
More information about the Python-ideas
mailing list