Rotating lists?
Thorsten Kampe
thorsten at thorstenkampe.de
Thu Sep 16 03:09:57 EDT 2004
* Ivan Voras (2004-09-16 00:10 +0200)
> I need to transform this:
>
> [1,2,3]
>
> into this:
>
> [2,3,1]
>
> (a left-rotation. Actually, any rotation will do).
>
> I tried:
>
> a = a[1:] + a[0]
>
> which doesn't work because there's no __add__ between a list and
> integer, and:
>
> a = a[1:].append(a[0])
>
> but it doesn't work, since append returns None :( Right now, I'm doing
> it with a temporary variable and it looks ugly - is there an elegant way
> of doing it?
def rotate(seq,
offset):
""" shift seq to the left by offset, with the elements shifted off the
beginning inserted back at the end """
return seq[offset:] + seq[:offset]
More information about the Python-list
mailing list