Dann also so?
Code: Alles auswählen
class Lizzy(list):
def __getitem__(self, index):
if isinstance(index, (int, slice)):
return list.__getitem__(self, index)
else:
return reduce(list.__getitem__, index, self)
def __setitem__(self, index, item):
if isinstance(index, (int, slice)):
list.__setitem__(self, index, item)
else:
list.__setitem__(self[index[:-1]], index[-1], item)
li = Lizzy([['a', 'b', 'c'], ['d', 'e', 'f']])
print li[1]
print li[1,1]
print li[slice(1,3)]
print li[1, slice(1,3)]
li[0,2] = li[1,1]
print li
li[0, slice(0,3)] = li[1, slice(0,2)]
print li
Ergebnis:
Code: Alles auswählen
['d', 'e', 'f']
e
[['d', 'e', 'f']]
['e', 'f']
[['a', 'b', 'e'], ['d', 'e', 'f']]
[['d', 'e'], ['d', 'e', 'f']]
In specifications, Murphy's Law supersedes Ohm's.