I had actually not thought about the question of what should happen when 
performing multiple index operations on the same iterator, and maybe that's a 
reason that the idea of adding index lookup using brackets is not as good as it 
first seems.

The whole point of adding that would be to reduce the number of situations in 
which it matters whether you have a sequence, or and iterator. As soon as we 
consider what should happen for multiple index lookups on a single iterator, 
that concept breaks down.

The next thing that makes me think of that's even farther afield from the 
initial topic of this thread would be to have some new function in the standard 
library that is similar to 'islice' but returns an array instead of a new 
iterator and performs optimally when given a list or tuple as an argument. 
Maybe it could be named something like 'gslice', short for "greedy slice".

Hypothetical simplistic implementation:

    def gslice(source, start_or_stop=None, stop=None, step=None):
        if isinstance(source, collections.abc.Sequence):
            return source[slice(start_or_stop, stop, step)]
        elif isinstance(source, collections.abc.Iterable):
            return list(islice(start_or_stop, stop, step))
        else:
            raise TypeError("'source' must be a sequence or iterable")
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/RRSJ65RYDRJ2X4K235M4M4AYJSTQAINB/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to