# Python旋转列表的方式

2021年4月29日18:14:23 发表评论 1,070 次浏览

``````# Python3 code to demonstrate
# rotation of list
# using slice

# initializing list
test_list = [ 1 , 4 , 6 , 7 , 2 ]

# printing original list
print ( "Original list : " + str (test_list))

# using slicing to left rotate by 3
test_list = test_list[ 3 :] + test_list[: 3 ]

# Printing list after left rotate
print ( "List after left rotate by 3 : " + str (test_list))

# using slicing to right rotate by 3
# back to Original
test_list = test_list[ - 3 :] + test_list[: - 3 ]

# Printing after right rotate
print ( "List after right rotate by 3(back to original) : "
+ str (test_list))``````

``````Original list : [1, 4, 6, 7, 2]
List after left rotate by 3 : [7, 2, 1, 4, 6]
List after right rotate by 3 ( back to original) : [1, 4, 6, 7, 2]``````

``````# Python3 code to demonstrate
# rotation of list
# using list comprehension

# initializing list
test_list = [ 1 , 4 , 6 , 7 , 2 ]

# printing original list
print ( "Original list : " + str (test_list))

# using list comprehension to left rotate by 3
test_list = [test_list[(i + 3 ) % len (test_list)]
for i, x in enumerate (test_list)]

# Printing list after left rotate
print ( "List after left rotate by 3 : " + str (test_list))

# using list comprehension to right rotate by 3
# back to Original
test_list = [test_list[(i - 3 ) % len (test_list)]
for i, x in enumerate (test_list)]

# Printing after right rotate
print ( "List after right rotate by 3(back to original) : "
+ str (test_list))``````

``````Original list : [1, 4, 6, 7, 2]
List after left rotate by 3 : [7, 2, 1, 4, 6]
List after right rotate by 3(back to original) : [1, 4, 6, 7, 2]``````

``````# Python3 code to demonstrate
# rotation of list
# using rotate()
from collections import deque

# initializing list
test_list = [ 1 , 4 , 6 , 7 , 2 ]

# printing original list
print ( "Original list : " + str (test_list))

# using rotate() to left rotate by 3
test_list = deque(test_list)
test_list.rotate( - 3 )
test_list = list (test_list)

# Printing list after left rotate
print ( "List after left rotate by 3 : " + str (test_list))

# using rotate() to right rotate by 3
# back to Original
test_list = deque(test_list)
test_list.rotate( 3 )
test_list = list (test_list)

# Printing after right rotate
print ( "List after right rotate by 3(back to original) : "
+ str (test_list))``````

``````Original list : [1, 4, 6, 7, 2]
List after left rotate by 3 : [7, 2, 1, 4, 6]
List after right rotate by 3(back to original) : [1, 4, 6, 7, 2]``````