codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
class slc (object): def __init__(self, data, start, end): self.data = data self.start, self.end = start, end def __len__(self): return self.end - self.start def __getitem__(self, idx): if isinstance(idx, slice): return [self[i] for i in xrange(*idx.indices(len(self)))] if idx >= len(self): raise IndexError idx %= len(self) return self.data[self.start+idx] def __setitem__(self, idx, val): if isinstance(idx, slice): start, stop, stride = idx.indices(len(self)) for i, v in zip(xrange(start, stop, stride), val): self[i] = v return if idx >= len(self): raise IndexError(idx) idx %= len(self) self.data[self.start+idx] = val L = range(10) s = slc(L, 2, 5) print L print list(s) print len(s) s[:] = range(3) print s[:] print L
Private
[
?
]
Run code
Submit