我已经在这个工作了3个小时,但我不知道该怎么做
任何人都可以帮我这个吗?
values = [1, 2, 3, 4, 5]
temp = values[0]
for index in range (len(values) -1):
values[index] = values [index]
values[len(values)-1] = temp
print values
我希望打印的值按顺序排列为[2,3,4,5,1] 只需更改括号中的那些
即可答案 0 :(得分:3)
deque是更有效的方法
In [1]: import collections
In [3]: dq = collections.deque([1,2,3,4,5])
In [4]: dq.rotate(-1)
In [5]: dq
Out[5]: deque([2, 3, 4, 5, 1])
答案 1 :(得分:1)
你想要实现的目标在python库中不可用但你可以利用切片来旋转列表
def rotate(seq, n = 1, direc = 'l'):
if direc.lower() == 'l':
seq = seq[n:] + seq[0:n]
else:
seq = seq[-n:] + seq[:-n]
return seq
>>> rotate(values)
[2, 3, 4, 5, 1]
>>> rotate(values,2,'l')
[3, 4, 5, 1, 2]
>>> rotate(values,2,'r')
[4, 5, 1, 2, 3]
答案 2 :(得分:0)
简单但功能强大的切片语法:
values = [1, 2, 3, 4, 5]
shifted = values[1:]+values[:1]
assert shifted == [2, 3, 4, 5, 1]
答案 3 :(得分:0)
按照睡眠的精神,一次性的时间如何:
while values != [2, 3, 4, 5, 1]: random.shuffle(values)