คุณสามารถกลับลำดับรายการใน Python ได้โดยใช้เมธอดในตัว reverse() หรือ reversed() เมธอดเหล่านี้จะกลับลำดับรายการโดยไม่สร้างรายการใหม่ Python reverse() และ reversed() จะกลับลำดับองค์ประกอบในออบเจ็กต์รายการเดิม
การกลับลำดับรายการเป็นส่วนทั่วไปของภาษาโปรแกรมมิ่งใดๆ ในบทช่วยสอนนี้ เราจะแยกวิเคราะห์วิธีการกลับลำดับรายการ Python ที่มีประสิทธิภาพที่สุด
สมมติคุณมีรายการใน Python ของชื่อลูกค้าในลำดับอักษรย้อนกลับ แต่ต้องการดูในลำดับอักษรปกติ คุณจะต้องกลับลำดับรายการเพื่อทำเช่นนั้น หากคุณมีรายการยาวและต้องการดูว่ามีอะไรอยู่ล่างสุด คุณอาจเลื่อนลงไปได้ หรือคุณสามารถกลับลำดับเพื่อรับข้อมูลได้เร็ว
Python Lists และ List Slicing: บททบทวน
ใน Python รายการ (lists) เป็นอาร์เรย์ของรายการ รายการของคุณอาจรวมสตริง บูลีน ตัวเลข ออบเจ็กต์ หรือชนิดข้อมูลอื่นๆ ใน Python และสามารถจัดเก็บได้มากเท่าที่คุณต้องการ เมื่อทำงานกับข้อมูลมาก การประกาศรายการแทนการประกาศตัวแปรหลายตัวอาจมีประโยชน์
List Slicing
แม้คุณไม่จำเป็นต้องรู้เกี่ยวกับ list slicing เพื่อดำเนินการกลับลำดับรายการ มันก็อาจมีประโยชน์
นี่คือวิธีที่คุณจะประกาศรายการใน Python:
studentNames = ["Hannah", "Imogen", "Lewis", "Peter"]
เราเพิ่งประกาศตัวแปร studentNames และกำหนดรายการค่า—ในกรณีนี้ ชื่อของนักเรียน—ให้กับตัวแปร
หากเราต้องการรับค่าเฉพาะจากรายการของเรา เราสามารถใช้หมายเลขดัชนีและ slice รายการ นั่นมากไปหน่อย มาแยกวิเคราะห์ แต่ละรายการในรายการของเรามีค่าดัชนี เริ่มจาก 0 เราสามารถใช้พวกมันเพื่อรับค่าบางค่าจากรายการของเรา นี่คือค่าดัชนีสำหรับอาร์เรย์ของเรา:
| Hannah | Imogen | Lewis | Peter |
| 1 | 2 | 3 |
หากเราต้องการรับ Imogen จากรายการของเรา เราจะทำได้โดยใช้โค้ดต่อไปนี้:
studentNames = ["Hannah", "Imogen", "Lewis", "Peter"] print(studentNames[1])
เราประกาศตัวแปรของเราพร้อมชื่อนักเรียน ต่อไป เราบอกว่าต้องการรับรายการในรายการที่มีค่าดัชนี 1 ในกรณีนี้ ค่าคือ Imogen
เรายังสามารถเปลี่ยนหมายเลขดัชนีเพื่อรับช่วงโดยการเพิ่มอีกหนึ่ง ตัวอย่างนี่คือตัวอย่าง:
studentNames = ["Hannah", "Imogen", "Lewis", "Peter"] print(studentNames[1:3])
เอาต์พุทสำหรับโค้ดของเราจะเป็นดังนี้:
["Imogen", "Lewis", "Peter"]
ตอนนี้เรารู้พื้นฐานของ list slicing แล้ว เราสามารถเริ่มพูดถึงการกลับลำดับรายการใน Python ได้
บทช่วยสอน Python Reverse List
สามวิธีหลักที่คุณสามารถกลับลำดับรายการใน Python คือ:
- กลับลำดับโดยใช้ Slicing
- กลับลำดับโดยใช้ Reverse()
- กลับลำดับโดยใช้ Reversed
กลับลำดับโดยใช้ Slicing
วิธีแรกคือใช้เทคนิค slicing เพื่อกลับลำดับรายการของคุณ นี่คือไวยากรณ์ Python:
studentNames = ["Hannah", "Imogen", "Lewis", "Peter"] print(studentNames[::-1])
เอาต์พุทสำหรับโค้ดของเราคือ:
["Peter", "Lewis", "Imogen", "Hannah"]
ในโค้ดของเรา เราประกาศตัวแปร studentNames และจากนั้นสร้างฟังก์ชัน slice ที่จะกลับลำดับรายการ นี่เป็นวิธีทั่วไปในการ slice รายการ แต่มันอาจไม่มีประสิทธิภาพเพราะมันสร้างสำเนาของรายการ ซึ่งใช้หน่วยความจำ นอกจากนี้ ฟังก์ชันนี้อาจขั้นสูงกว่าวิธีอื่นๆ ในการกลับลำดับรายการเล็กน้อย
กลับลำดับโดยใช้ Reverse()
ตัวเลือกที่สองที่เราสามารถเลือกคือใช้ฟังก์ชันในตัว reverse() เมธอด reverse() สามารถเรียกได้เพื่อกลับลำดับเนื้อหาของออบเจ็กต์รายการ in-place (ในที่เดิม) นี่หมายความว่าคุณจะไม่สร้างรายการใหม่ แทนที่จะเป็นเช่นนั้น เราจะแก้ไขออบเจ็กต์รายการเดิม
โค้ดต่อไปนี้แสดงไวยากรณ์ Python สำหรับ reverse() ในการทำงาน:
studentNames = ["Hannah", "Imogen", "Lewis", "Peter"] studentNames.reverse() print(studentNames)
เอาต์พุทสำหรับโค้ดของเราคือดังนี้:
["Peter", "Lewis", "Imogen", "Hannah"]
สำคัญที่จะต้องสังเกตว่า ฟังก์ชัน reverse() เองคืนค่า None ดังนั้น หากเราต้องการรับรายการที่แก้ไขแล้ว เราต้องพิมพ์มันอีกครั้ง ตามที่เราทำข้างต้น นี่เป็นวิธีที่มีประสิทธิภาพในการกลับลำดับรายการและไม่ต้องการหน่วยความจำมาก ไวยากรณ์ก็ชัดเจนและง่าย
กลับลำดับโดยใช้ Reversed()
วิธีที่สามและวิธีสุดท้ายที่เราสามารถใช้เพื่อกลับลำดับรายการคือใช้ฟังก์ชัน reversed() นี่คือฟังก์ชันในตัวที่เราใช้โดยการสร้าง reverse iterator เพื่อสร้างลำดับย้อนกลับของรายการของเราใน Python นี่หมายความว่ารายการใหม่ไม่ได้ถูกสร้าง และรายการเก่าของเราไม่ได้ถูกแก้ไข แทนที่จะเป็นเช่นนั้น ฟังก์ชันจะวนซ้ำผ่านองค์ประกอบทั้งหมดในรายการของเราและคืนค่าพวกมันในลำดับย้อนกลับ
ไวยากรณ์ต่อไปนี้แสดงฟังก์ชัน reversed() ในการทำงาน:
studentNames = ["Hannah", "Imogen", "Lewis", "Peter"] for i in reversed(studentNames): print(i)
เอาต์พุทสำหรับโค้ดของเราคือ:
"Peter" "Lewis" "Imogen" "Hannah"
หากเราจริงๆ ต้องการสร้างสำเนาที่กลับลำดับของรายการ เราสามารถใช้โค้ดนี้:
studentNames = ["Hannah", "Imogen", "Lewis", "Peter"] list(reversed(studentNames))
นี่จะคืนค่า:
["Peter", "Lewis", "Imogen", "Hannah"]
นี่เป็นอีกวิธีง่ายๆ ในการกลับลำดับรายการ มันชัดเจนว่ากำลังเกิดอะไรขึ้น รายการใหม่กำลังถูกสร้างซึ่งจะรวมค่าทั้งหมดในรายการอื่นของเรา แต่กลับลำดับ
สรุป
นั่นคือวิธีการทำงานของเมธอดกลับลำดับรายการต่างๆ ในบทช่วยสอนนี้ เราสำรวจพื้นฐานของรายการ ซึ่งเป็นอาร์เรย์ของรายการ เช่น สตริงหรือออบเจ็กต์ และพูดถึงค่าดัชนี เรายังรेखांकถึงสามวิธีที่คุณสามารถใช้เพื่อกลับลำดับรายการ
แน่นอน คุณต้องรู้เพียงวิธีเดียว แต่การรู้จักทั้งสามอาจช่วยคุณได้ หากผู้อื่นมีวิธีการแตกต่างและใช้ในโค้ดที่คุณอ่าน