python 列表元素左右循環移動 的多種解決方案

如下所示:

#待處理列表
A= [1,2,3,4,5]
#移動次數
a = 3

右移比較簡單

for i in range(a):
 A.insert(0,A.pop())

左移

for i in range(a):
 A.insert(len(A),A[0])
 A.remove(A[0])

#左移

for i in range(a):
  b = A.pop(0)
  A.append(b)

列表雙向隊列

from collections import deque
aa = deque(A)
#正數表示向右移動,負數表示向左移動
aa.rotate(8)
# aa.rotate(-8)
print(aa) # deque([3, 4, 5, 1, 2])
print(list(aa)) # [3, 4, 5, 1, 2]

補充:Python 列表元素循環移位

定義函數,完成如下功能: 有n個整數,使其前面各數順序向後移m個位置,最後m個數變成最前面的m個數。函數包括3個參數,分別是整數列表、數字個數、移動次數。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: