我明白这个问题以前已经被问过了,但我还没有看到任何回答它的方式没有拆分列表。在列表中旋转值[Python]
说我有一个列表:
num = [1,2,3,4,5,6]
我想创建一个函数:
rotate(lst, x):
所以,如果我把它rotate(num, 3)
将在全球范围编辑列表num
。这种方式,当我后来致电print(num)
它将导致[4,5,6,1,2,3]
。
我明白,我可以写的功能类似:
rotate(lst, x):
return [lst[-x:] + lst[:-x]
但我需要做的没有return语句此功能,并且不要把名单。我在想的是将列表的最后一个值放入一个变量中:q = lst[-1]
然后从那里创建一个循环,该循环运行x
继续将值移动到列表末尾并代替第0个位置与任何存储在q中的位置。
还有一件事。如果我打电话rotate(lst, -3)
,那么不必旋转到“右”,它将不得不旋转到“左”。
我是python的新手,并且在处理列表的这个概念时遇到了麻烦。感谢大家的时间和精力。我希望这个问题很清楚。
,而不是“全球编辑列表”,人们通常说的“就地编辑列表*。*” – turbulencetoo
您可能会发现这个有趣的:http://stackoverflow.com/questions/23321216/rotating -an-array-using-juggling-algorithm – Prayag
谢谢!总是有助于更新行话。 :) – Tom