任意の長さのリストを取得し、整数値でシフトする必要があります。この特定のアプリケーションでは、右に 1 シフトすると最後の値が最初の値になるように、リストは「巡回」と見なすことができます。
これは私が持っている最高のものです (for ループを含むすべてのバリアントよりもはるかに優れています)。動作しているように見えますが、特にこれらのリストが非常に長くなるため、より高速なものがあるのではないかと思います。
def shift(p, U):
U = -(U % len(p))
q = p[U:]+p[:U]
return q