[Python-de] Noch eine Denksportaufgabe

Martin v. Loewis martin at v.loewis.de
Thu Oct 10 21:06:43 EDT 2002


Gerhard Häring <gerhard.haering at opus-gmbh.net> writes:

>     Schreibe eine Prozedur, die die Elemente eines Arrays mit M
>     Elementen um n rotiert. -M < n < M

class ShiftableArray:
    def __init__(self, elems):
        self.offset = 0
        self.elems = elems

    def shift(self, n):
        self.offset += n

    def __getitem__(self, index):
        return self.elems[(index-self.offset)%len(self.elems)]

    def __setitem__(self, index, value):
        self.elems[(index-self.offset)%len(self.elems)] = value

s = ShiftableArray([1, 2, 3, 4, 5, 6])
print s[0]
s.shift(2)
print s[0]

Ciao,
Martn




More information about the Python-de mailing list