Testing if an index is in a slice
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Sun Jan 4 04:52:49 EST 2009
On Sat, 03 Jan 2009 14:53:12 -0800, Bryan Olson wrote about testing
whether or not an index is in a slice:
> I'm leaning towards mmanns' idea that this should be built in.
What's the use-case for it?
> Handling
> all the cases is remarkably tricky. Here's a verbose version, with a
> little test:
[snip code]
Here's a less verbose version which passes your test cases:
def inslice(index, slc, len):
"""Return True if index would be part of slice slc of a
sequence of length len, otherwise return False.
"""
start, stop, stride = slc.indices(len)
if stride < 0:
return (start >= index > stop) and ((start-index) % -stride == 0)
else:
return (start <= index < stop) and ((index-start) % stride == 0)
(Hint: help(slice) is your friend.)
--
Steven
More information about the Python-list
mailing list