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))Kotlin Is Fantastic
- บรรทัดที่ 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))Hi Karn!
- บรรทัดที่ 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))Karn!
- อักขระที่เก็บอยู่ในตัวแปร
zถูกกำหนดให้เป็นพารามิเตอร์ตัวที่ 3 ดังนั้น อักขระในสตริงต้นทางที่ตรงกับอักขระในตัวแปรzจะถูกลบออก
เมธอด maketrans() ถ้าไม่ได้ใช้ร่วมกับเมธอด translate() จะคืนค่ากลับมาเป็น Dictionary ที่ประกอบด้วย Unicode แสดงการแทนที่ของอักขระแต่ละตัว
str = "Hi John!"
x = "hoJ"
y = "raK"
z = "iH "
print(str.maketrans(x,y,z)){104: 114, 111: 97, 74: 75, 105: None, 72: None, 32: None}
