如何更改列表中的数字(python)

时间:2015-05-29 10:32:21

标签: python numbers

我已经在这个工作了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] 只需更改括号中的那些

即可

4 个答案:

答案 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)