[Python-ideas] Consider making enumerate a sequence if its argument is a sequence
Akira Li
4kir4.1i at gmail.com
Fri Oct 2 04:13:39 CEST 2015
More information about the Python-ideas mailing list
Fri Oct 2 04:13:39 CEST 2015
- Previous message (by thread): [Python-ideas] Consider making enumerate a sequence if its argument is a sequence
- Next message (by thread): [Python-ideas] Consider making enumerate a sequence if its argument is a sequence
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Steven D'Aprano <steve at pearwood.info> writes: ... >> You've got the idea: the word *iterable* may be used in the context when >> not all iterables are accepted. > > Sure. But the distinction is that while there are a whole lot of > different iterables: > > - iterables with a sufficiently small number of items > - iterables of hashable items > - iterables of (hashable key, item) pairs > - iterables of prime numbers less than one million > - iterables of strings containing exactly 1 vowel > > etc they are special cases and don't need specialised names. But there > is a *general* distinction between two cases: > > - iterables which are iterators > - iterables which are not iterators > > We have a name for the first set: "iterators". But we don't have a name > for the second set. Andrew suggested "non-iterator iterables" is too > clumsy for general use, and suggests we need a better name. You > suggested "iterables", but that clearly cannot work, since iterators are > a kind of iterable. I meant that you won't use the word *iterable* if your function accepts _only_ iterators and therefore if I see *iterable" I expect that the function can handle arbitrary iterables, not just iterators. If your function rejects iterators then in practice it means that you might want a re-iterable/re-runnable (that I see mentioned in the thread) iterable (not an arbitrary "non-iterator iterable"). If there is no restriction that the same items should be produced the second time ("rerunnable iterable"?) then *collection" (introduced at the top of the thread) may work. Though *collection* implies that an iterable can't return the same (non-self) iterator -- otherwise an iterator is also a collection. I still don't see a practical need to avoid the word "iterable" unless new requirements (in addition to being non-iterator) are present.
- Previous message (by thread): [Python-ideas] Consider making enumerate a sequence if its argument is a sequence
- Next message (by thread): [Python-ideas] Consider making enumerate a sequence if its argument is a sequence
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list