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

Python Reverse String: คู่มือทีละขั้นตอนสำหรับการกลับสตริง

คุณสามารถกลับสตริงใน Python ได้โดยใช้ slicing หรือเมธอด reversed() ฟังก์ชันเรียกซ้ำ (recursive function) ที่อ่านแต่ละอักขระในสตริงและกลับสตริงทั้งหมดเป็นอีกวิธีทั่วไปในการกลับสตริง ไม่มีฟังก์ชัน โดยเฉพาะ ที่ออกแบบมาเพื่อกลับสตริง


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

การกลับสตริงไม่ใช่การดำเนินการที่พบบ่อยในการเขียนโปรแกรม ดังนั้น Python จึงไม่มีฟังก์ชันในตัวสำหรับกลับสตริง อย่างไรก็ตาม การกลับสตริงเป็นหัวข้อที่มักขึ้นในสัมภาษณ์งาน และมีการประยุกต์ใช้จริงบางอย่าง

ในบทช่วยสอนนี้ เราจะอภิปรายสามวิธีที่คุณสามารถใช้เพื่อกลับสตริงใน Python เราจะเริ่มต้นด้วยการทบทวนสตริง Python ตามด้วยการตัด片สตริง (string slicing) จากนั้น เราจะสำรวจวิธีใช้ฟังก์ชัน reversed() และ join() สุดท้าย เราจะดูการเรียกซ้ำ (recursion)

วิธีกลับสตริงใน Python (How to Reverse a String in Python)

มีสามวิธีที่คุณสามารถใช้เพื่อกลับสตริง:

  • การตัด片สตริงด้วยไวยากรณ์ [::-1]
  • ใช้ฟังก์ชัน reversed() เพื่อสร้าง reverse iterator ที่อ่านสตริงและกลับเนื้อหาของมัน
  • ใช้ฟังก์ชันเรียกซ้ำ (recursive function)

มาเจาะลึกทั้งสามวิธีนี้กัน

การกลับสตริง Python ด้วย Slicing

เมื่อคุณตัด片สตริง Python คุณสามารถใช้ลำดับการตัด片 [::-1] เพื่อสร้างสำเนาที่กลับกันของสตริง ไวยากรณ์นี้ดึงอักขระทั้งหมดในสตริงและกลับพวกมัน

สมมติว่าเรามีสตริงที่มีค่า "Python" เราต้องการเห็นสตริงนี้ในลำดับย้อนกลับ เราสามารถทำได้โดยใช้ไวยากรณ์ [::-1]:

string = "Python"
reversed = string[::-1]
print(reversed)

โค้ดของเราคืนค่า: nohtyP.

เราประกาศตัวแปร Python ชื่อ reverse ซึ่งจัดเก็บสตริงที่กลับแล้ว ไวยากรณ์ [::-1] ถูกเพิ่มที่ปลายของตัวแปรที่มีค่าสตริง "Python"

นี่เป็นวิธีที่มีประสิทธิภาพเพราะมันสั้นและเรียบง่าย คุณเพียงต้องเพิ่ม [::-1] ที่ปลายของสตริงเพื่อกลับมัน

วิธีนี้อาจดูสับสนเพราะไวยากรณ์ไม่ได้บ่งชี้ชัดเจนว่ามันสามารถใช้กลับสตริงได้ ดังนั้น นักพัฒนาหลายคนหลีกเลี่ยงการใช้เทคนิคนี้

กลับสตริง Python ด้วย reversed()

Python รวมฟังก์ชันในตัวที่ใช้สร้าง reverse iterator: ฟังก์ชัน reversed() ตัววนซ้ำย้อนกลับนี้ทำงานได้เพราะสตริงมีดัชนี ดังนั้นแต่ละค่าในสตริงจึงเข้าถึงได้อย่างแยกต่างหาก

ตัววนซ้ำย้อนกลับจากนั้นถูกใช้เพื่อวนซ้ำผ่านองค์ประกอบในสตริงในลำดับย้อนกลับ

นี่คือตัวอย่างที่ใช้ reversed() เพื่อสร้าง reverse iterator ที่พิมพ์สตริงของเราในลำดับย้อนกลับ:

for char in reversed("Python"):
    print(char)

โค้ดของเราคืนค่า:

n
o
h
t
y
P

ในโค้ดของเรา เราระบุลูป for ของ Python ที่วนซ้ำผ่านแต่ละรายการในเมธอด reversed() คุณเห็นได้ว่าโค้ดของเราได้พิมพ์สตริงของเราในลำดับย้อนกลับ

โค้ดของเราพิมพ์แต่ละอักขระบนบรรทัดใหม่ เนื่องจากเราใช้ reversed() กับลูป for หากเราต้องการให้สตริงของเราปรากฏบนบรรทัดเดียว เราจะต้องใช้ reversed() กับเมธอด join()

เราสามารถใช้เมธอด join() เพื่อรวมอักขระทั้งหมดจากตัววนซ้ำ reversed() ของเราเป็นสตริงเดียว

นี่คือตัวอย่างที่ใช้ reversed() และ join() เพื่อกลับสตริง Python:

"".join(reversed("Python"))

โค้ดของเราคืนค่า: nohtyP.

วิธีการกลับสตริงนี้มีประโยชน์เพราะเหมือนวิธีการตัด片ที่อภิปรายข้างต้น มันกระชับและกระชับ วิธีนี้มีประโยชน์เพิ่มเติมคืออ่านง่ายและเข้าใจง่าย แม้คุณจะไม่เคยเห็นเมธอด reversed() หรือ join() มาก่อน คุณก็จะเดาได้ว่ากำลังเกิดอะไรขึ้น

กลับสตริง Python: เรียกซ้ำ (Recursion)

การเรียกซ้ำ (Recursion) เป็นศัพท์ที่ใช้ในวิทยาการคอมพิวเตอร์เพื่ออธิบายฟังก์ชันที่เรียกตัวเอง โดยตรงหรือโดยอ้อม นี่คือตัวอย่างของการกลับสตริงผ่านการเรียกซ้ำของ Python:

def reverse_string(string):
    if len(string) == 0:
        return string
    else:
        return reverse_string(string[1:]) + string[0]

reverse_string("Python")

โค้ดของเราคืนค่า: nohtyP.

วิธีนี้ใช้การตัด片เพื่อกลับสตริงของเรา แทนที่จะใช้การดำเนินการตัด片ครั้งเดียวเหมือนที่เราทำก่อนหน้านี้ เราใช้ฟังก์ชัน Python ชื่อ reverse_string

ฟังก์ชันนี้ตัด片สตริงของเราและคืนค่ารุ่นที่กลับแล้ว วิธีนี้มีประสิทธิภาพมาก ดังนั้น นักพัฒนา Python หลายคนจึงชอบมัน

ฟังก์ชันของเรายอมรับสตริงที่เราต้องการกลับ หากไม่มีอักขระในสตริง ค่าของสตริงจะถูกคืนค่า มิฉะนั้น เราเรียกฟังก์ชันอีกครั้งโดยใช้ไวยากรณ์ string[1:] เป็นอาร์กิวเมนต์ เราเพิ่มอักขระแรกในสตริงของเราเข้าไปที่ปลายของสิ่งที่ฟังก์ชันนี้คืนค่า

สรุป

ในขณะที่ Python ไม่รวมฟังก์ชันกลับในตัว มีแนวทางไม่กี่อย่างที่เราสามารถใช้เพื่อกลับสตริง

เราสามารถใช้เมธอดการตัด片 [::-1] เพื่อกลับสตริงผ่านการตัด片 ฟังก์ชัน reversed() และ join() เพื่อกลับสตริงผ่านการวนซ้ำย้อนกลับ หรือการเรียกซ้ำเพื่อกลับสตริงโดยใช้ฟังก์ชันเรียกซ้ำ

ในบทช่วยสอนนี้ เราอภิปรายการใช้การตัด片 reversed() และ join() และการเรียกซ้ำเพื่อกลับสตริงใน Python เราสำรวจตัวอย่างของแต่ละเมธอดสตริงเหล่านี้ในการทำงาน

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโค้ด Python โปรดอ่านคู่มือ How to Learn Python ที่ครอบคลุมของเรา