## [Math][Python] Shift array using modulo arithmetic or remainder operation

The following piece of code shifts an input array left or right by $shift$ items.

This is the same operation that ROR/ROL x86/x64 instructions do.

Thanks to modulo arithmetic, we can use the remainder operation to make our code tidy and concise. Remainder operation here returns array iterator/pointer back, if it goes over array's bound during execution.

#!/usr/bin/env python3

def reverse_left(input, shift):
input_len=len(input)
output=[None for i in range(input_len)]

for i in range(input_len):
output[i]=input[(i+shift) % input_len]

return output

def reverse_right(input, shift):
input_len=len(input)
output=[None for i in range(input_len)]

for i in range(input_len):
output[(i+shift) % input_len]=input[i]

return output

test=[1,2,3,4,5,6,7,8,9]

print (reverse_left(test, 3))
print (reverse_right(test, 3))

Output:
[4, 5, 6, 7, 8, 9, 1, 2, 3]
[7, 8, 9, 1, 2, 3, 4, 5, 6]


Can you find more concise code for that operation? (The loop body, of course.)