python中列表左右移動問題

2021-09-16 23:20:44 字數 1963 閱讀 8690

引例

乙個陣列a中存有n(>0)個整數,將每個整數迴圈向右移m(≥0)個位置。

輸入樣例

6

2# 輸入乙個6個整數的列表 向右移動2個位置12

3456

# 乙個6個整數的列表

輸出樣例

561

234

1. 右移

n =

input()

.split(

)# 輸入列表個數和移動個數

m =int

(n[1])

# 移動m個位置

num =

list

(input()

.split())

# 輸入列表

for i in

range

(m):

num.insert(

0, num.pop())

# 右移

for x in

range

(len

(num)):

# 輸出

if x!=

len(num)-1

:print

(num[x]

, end=

' ')

else

:print

(num[x]

, end=

'')

2. 左移

# 方法一

for i in

range

(m):

num.insert(

len(num)

, num[0]

) num.remove(num[0]

)# 方法二

for i in

range

(m):

l = num.pop(

0)

3. 擴充套件

列表雙向列隊中deque有乙個rotate方法可以方便的解決左移右移問題

用法示例

>>

>

from collections import deque

>>

> queue = deque(

range(5

))>>

> queue

deque([0

,1,2

,3,4

])>>

> queue.rotate(3)

# 右移

>>

> queue

deque([2

,3,4

,0,1

])>>

> queue.rotate(-1

)# 左移

>>

> queue

deque([3

,4,0

,1,2

])

**

from collections import deque

new_list = deque(num)

new_list.rotate(2)

# 正數表示向右移動,負數表示向左移動

# new_list.rotate(-2)

print

(new_list)

# deque([5, 6, 1, 2, 3, 4])

print

(list

(new_list)

)# [5, 6, 1, 2, 3, 4]

樹莓派 python 控制小車上下左右移動

樹莓派 python 控制小車上下左右移動程式注釋 import rpi.gpio as gpio import time pwma 18 兩個方向位 ain1 22 ain2 27 pwmb 23 bin1 25 bin2 24 速度0 100 利用time.sleep t time 函式控制執行...

python自增列表 字典中的列表自增問題求教

import easygui as g import os codingdict typedict linecountdict def choicecounttype 選擇要統計哪些 檔案型別 global codingdict global typedict global linecountdic...

python中對列表進行修改時的問題

a 0,1,1,2,2,3 for i in a if i 1 a.remove i print a a i for i in aif i 1 其實歸根到底python還是不想讓你在對原來列表進行修改時採取for in 這個模式,因為不知覺的你就掉坑了,因此如果要修改,請用while,如果非得用re...