[Python-3000] Making more effective use of slice objects in Py3k (original) (raw)
Greg Ewing greg.ewing at canterbury.ac.nz
Tue Aug 29 11:14:18 CEST 2006
- Previous message: [Python-3000] Making more effective use of slice objects in Py3k
- Next message: [Python-3000] Making more effective use of slice objects in Py3k
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Ron Adam wrote:
And in addition to that... 0 is not the beginning if the step is -1.
Negative steps are downright confusing however you think about them. :-)
In most cases I've seen only integers and None are ever used.
Numeric uses various strange things as array indexes, such as Ellipsis and NewAxis. I don't think it uses them as parts of slices, but I wouldn't be surprised if they came up with some such usage one day.
>>> 'abc'[1.0] Traceback (most recent call last): File "", line 1, in ? TypeError: string indices must be integers
That is a string method that is generating the exception then and not the slice object?
Yes, I expect so. From experimenting, it seems you can pass anything you want to slice():
Python 2.3 (#1, Aug 5 2003, 15:52:30) [GCC 3.1 20020420 (prerelease)] on darwin Type "help", "copyright", "credits" or "license" for more information.
slice(42.3, "banana", {}) slice(42.299999999999997, 'banana', {})
But then what about the slice.indices() method? It does generate exceptions.
>>> slc = slice(1.0) >>> slc.indices(10) Traceback (most recent call last): File "", line 1, in ? TypeError: slice indices must be integers
That particular method seems to require ints, yes. But a slice-using object can extract the start, stop and step and do whatever it wants with them.
Ok, I hadn't considered the possibility of methods being defined to read the slice object. Do you know where I could find an example of that?
-- Greg
- Previous message: [Python-3000] Making more effective use of slice objects in Py3k
- Next message: [Python-3000] Making more effective use of slice objects in Py3k
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]