Skip to content
หน้าแรก » เขียนโปรแกรมภาษา Python ตอนที่ 62 การใช้งานเมธอด maketrans()

เขียนโปรแกรมภาษา Python ตอนที่ 62 การใช้งานเมธอด maketrans()

การใช้งานเมธอด maketrans()

เขียนโปรแกรมภาษา Python ตอนที่ 62 การใช้งานเมธอด maketrans()

maketrans() เป็นเมธอดสำหรับสร้าง Mapping Table เพื่อนำไปใช้กับเมธอด translate() เพื่อแทนที่สตริง มีรูปแบบการใช้งานดังนี้

string.maketrans(x, y, z)

สำหรับพารามิเตอร์ทั้ง 3 ตัว มีรายละเอียดดังนี้

  • x พารามิเตอร์ตัวแรก
    • ถ้าระบุพารามิเตอร์เพียงตัวเดียว ตรงนี้จะต้องระบุเป็น Dictionary ที่กำหนดการทำงานในการแทนที่ข้อความ
    • ถ้าระบุพารามิเตอร์ 2 ตัวขึ้นไป ตรงนี้ต้องเป็นสตริงที่กำหนดตัวอักษรที่ต้องการให้แทนที่
  • y พารามิเตอร์ตัวที่ 2 (มีหรือไม่มีก็ได้) ระบุเป็นสตริงที่มีความยาวเท่ากันกับพารามิเตอร์ x โดยตัวอักษรแต่ละตัวในพารามิเตอร์ x จะถูกแทนที่ด้วยตัวอักษรในพารามิเตอร์ y เรียงตามลำดับ
  • z พารามิเตอร์ตัวที่ 3 (มีหรือไม่มีก็ได้) ระบุเป็นสตริงที่ประกอบด้วยตัวอักษรที่ต้องการลบออกจากสตริงต้นทาง

ตัวอย่างการใช้งานเมธอด maketrans() ร่วมกับเมธอด translate()

str = "Cotlin Is Fantastic"

map = str.maketrans("C", "K")

print(str.translate(map))
  • บรรทัดที่ 3 สร้าง Mapping Table ให้แทนที่อักขระ “C” ด้วยอักขระ “K”
  • บรรทัดที่ 5 เรียกใช้เมธอด translate() โดยส่ง Mapping Table ที่สร้างไว้ในบรรทัดที่ 3 เป็นอากิวเมนต์

สร้าง Mapping Table เพื่อแทนที่อักขระทีละหลายตัว

str = "Hi John!"
x = "hoJ"
y = "raK"
table = str.maketrans(x, y)
print(str.translate(table))
  • บรรทัดที่ 4 สร้าง Mapping Table โดยให้แทนที่อักขระในตัวแปร x ด้วยอักขระในตัวแปร y เรียงตามลำดับ
    • ตัวแปร x เก็บอักขระ “hoJ” ตัวแปร y เก็บอักขระ “raK” ดังนั้น “h” จะถูกแทนที่ด้วย “r” “o” จะถูกแทนที่ด้วย “a” และ “J” จะถูกแทนที่ด้วย “K”

กำหนดอักขระที่ต้องการลบออกจากสตริง

ถ้ามีอักขระใด ๆ ที่ต้องการให้ลบออกจากสตริง สามารถทำได้ด้วยการกำหนดอักขระเพิ่มเข้าไปในพารามิเตอร์ตัวที่ 3

str = "Hi John!"
x = "hoJ"
y = "raK"
z = "iH "
table = str.maketrans(x, y, z)
print(str.translate(table))
  • อักขระที่เก็บอยู่ในตัวแปร z ถูกกำหนดให้เป็นพารามิเตอร์ตัวที่ 3 ดังนั้น อักขระในสตริงต้นทางที่ตรงกับอักขระในตัวแปร z จะถูกลบออก

เมธอด maketrans() ถ้าไม่ได้ใช้ร่วมกับเมธอด translate() จะคืนค่ากลับมาเป็น Dictionary ที่ประกอบด้วย Unicode แสดงการแทนที่ของอักขระแต่ละตัว

str = "Hi John!"
x = "hoJ"
y = "raK"
z = "iH "
print(str.maketrans(x,y,z))