Quick Start
Create, query and visualize SliceMap
from slicemap import SliceMap
sm = SliceMap()
sm[-10:10] = 0
sm[2:4] = 1
sm[4:6] = 2
sm[7:9] = 3
sm[12:15] = 1.5
print(sm[2], sm[3], sm[4], sm[9], sm[15])
Outputs:
As long as you work with numerical values, you can do:

Include start | end
The default value is include="start", but you can choose to include the end of slices instead.
from slicemap import SliceMap
sm1 = SliceMap(include="start")
sm1[2:3] = 1
sm1[3:4] = 2
sm1[4:5] = 3
print(sm1[3], sm1[4])
sm2 = SliceMap(include="end")
sm2[2:3] = 1
sm2[3:4] = 2
sm2[4:5] = 3
print(sm2[3], sm2[4])
Outputs:
Query either values or ranges
You can equery each value individually, or query with a slice to get all values in given slice.
from slicemap import SliceMap
sm = SliceMap(include="start")
sm[-10:10] = 0
sm[2:4] = 1
sm[4:6] = 2
sm[7:9] = 3
sm[12:15] = 1.5
print(sm[3], sm[5], sm[8])
print(sm[3:8])
print(sm[:])
Outputs:
Other options
You can choose to raise KeyError when querying non-existing keys, or return None instead.
By default None is returned.
Example:
from slicemap import SliceMap
sm = SliceMap(include="start", raise_missing=True)
sm[-10:10] = 0
try:
print(sm[10])
raise Exception("KeyError was not raised!")
except KeyError:
print("KeyError was raised correctly!")
Outputs:
You can use get_slice_at to get more information about the slice at given point:
from slicemap import SliceMap
sm = SliceMap(include="start")
sm[-10:10] = 0
print(sm.get_slice_at(0))
Outputs:
More information
- Package
matplotlibis an optional dependency - without it you can use the pacakge, but not the plotting functionality. - You can use slices based on any number-like objects (except complex numbers) as keys. It'll work with ints, floats or numpy values.
- You can use any object as values.