A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2002-May/023892.html below:

[Python-Dev] RE: iterable slices

[Python-Dev] RE: iterable slicesAlex Martelli aleax@aleax.it
Thu, 2 May 2002 09:20:52 +0200
On Thursday 02 May 2002 09:05, Damien Morton wrote:
	...
> I hadnt thought of that, but its kind of elegant.
>
> for i in (a:b:c:d:e):
>
> Would probably be an error. Trying to make an iterator out of anything
> but a 2 or 3 element slice should fail, unless you supply your own
> iterator factory.

Currently you can't "supply your own factory" between iter() and a given
object type -- iter() looks for the object's __iter__ (&c), not in any 
registry of adapter-factories.  PEP 246 might be tweaked to change
that, but it would be a doubtful change IMHO.


> Omitted slice elements being None is a nice idea, and would work with
> the RDF notation
>
> (subj::obj) -> slice(subj, None, obj)
>
> It gets a little hairy when you start doing things like this, however
>
> (::) -> slice(None, None, None)

You could forbid it:

>>> slice()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: slice() takes at least 1 argument (0 given)

> And what then of the 1-element slice? (if its necessary at all)

It definitely is (to indicate "all items from i" or "all items up to i",
depending on which 'element' you mean, start or stop).

> (1:) -> slice(1, None) or slice(1)??

>>> slice(3)
slice(None, 3, None)
>>>

i.e., like (:3).  (1:) must clearly mean "all from 1 upwards" by
analogy with sequence slicing such as somelist[1:].


Alex




RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4