Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - วิธีหมุนรายการ


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))
# 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))
# 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]
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]
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]