我正在寻找一种左移元组的有效方法。
到目前为止我所做的:
def leftShift(tup, n):
length = len(tup)
if length != 0:
n = n % length
else:
return tuple()
return tup[n:] + tup[0:n]
sample = (1,2,3,4)
sample2 = ()
print(leftShift(sample, 5)) #prints (2, 3, 4, 1)
print(leftShift(sample, 1)) #prints (2, 3, 4, 1)
print(leftShift(sample, 15)) #prints (4, 1, 2, 3)
print(leftShift(sample, 3)) #prints (4, 1, 2, 3)
print(leftShift(sample2, 4)) #prints ()
要移动的位置数作为第二个参数给出。
它有效率吗?它可以以更 Pythonic 的方式编码吗?
告诉我,是不是...
length = len(tup)
if length != 0:
n = n % length
比效率更高
if len(tup) != 0:
n = n % len(tup)
?
我的意思是,是len(tup)
O(1) 还是我应该记住它以供以后使用?