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

Python Reverse List: บทช่วยสอนการกลับลำดับรายการแบบทีละขั้นตอน

คุณสามารถกลับลำดับรายการใน 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 เราสามารถใช้พวกมันเพื่อรับค่าบางค่าจากรายการของเรา นี่คือค่าดัชนีสำหรับอาร์เรย์ของเรา:

HannahImogenLewisPeter
123

หากเราต้องการรับ 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"]

นี่เป็นอีกวิธีง่ายๆ ในการกลับลำดับรายการ มันชัดเจนว่ากำลังเกิดอะไรขึ้น รายการใหม่กำลังถูกสร้างซึ่งจะรวมค่าทั้งหมดในรายการอื่นของเรา แต่กลับลำดับ 

สรุป

นั่นคือวิธีการทำงานของเมธอดกลับลำดับรายการต่างๆ ในบทช่วยสอนนี้ เราสำรวจพื้นฐานของรายการ ซึ่งเป็นอาร์เรย์ของรายการ เช่น สตริงหรือออบเจ็กต์ และพูดถึงค่าดัชนี เรายังรेखांकถึงสามวิธีที่คุณสามารถใช้เพื่อกลับลำดับรายการ

แน่นอน คุณต้องรู้เพียงวิธีเดียว แต่การรู้จักทั้งสามอาจช่วยคุณได้ หากผู้อื่นมีวิธีการแตกต่างและใช้ในโค้ดที่คุณอ่าน