我明白這個問題以前已經被問過了,但我還沒有看到任何回答它的方式沒有拆分列表。在列表中旋轉值[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