
เขียนโปรแกรมภาษา Python ตอนที่ 63 การแทนที่ String ด้วยเมธอด translate()
เมธอด translate()
เป็นเมธอดสำหรับแทนที่อักขระในสตริง โดยใช้งานร่วมกับเมธอด maketrans()
ซึ่งเป็นเมธอดสำหรับสร้าง Mapping Table กำหนดรูปแบบการแทนที่อักขระ หรือใช้งานร่วมกับ Dictionary ที่กำหนดรูปแบบการแทนที่อักขระ มีรูปแบบการใช้งานดังนี้
string.translate(table)
table
คือพารามิเตอร์ที่รับค่าเป็น Mapping Table หรือ Dictionary อย่างใดอย่างหนึ่งที่กำหนดกฏการแทนที่อักขระ โดย- Mapping Table ได้จากเมธอด
maketrans()
- Dictionary คือตัวแปร Dictionary ที่กำหนดรูปแบบการแทนที่อักขระ ซึ่งต้องใช้รหัส ASCII แทนการกำหนดอักขระลงไปตรง ๆ
- Mapping Table ได้จากเมธอด
ใช้เมธอด translate() ร่วมกับ Dictionary
str = "Good morning Kim" dict = {75: 80} print(str.translate(dict))
Good morning Pim
- บรรทัดที่ 3 สร้างตัวแปร Dictionary กำหนดให้แทนที่ตัวอักษร “K” รหัส 75 ด้วยตัวอักษร “P” รหัส 80
- บรรทัดที่ 5 เรียกใช้เมธอด
translate()
โดยส่ง Dictionary ที่สร้างไว้ เข้าไปเป็นอากิวเมนต์
ใช้เมธอด translate() ร่วมกับ Mapping Table
การใช้งานเมธอด translate()
ร่วมกับ Mapping Table ต้องสร้าง Mapping Table ขึ้นมาก่อน โดยใช้เมธอด maketrans()
แล้วเรียกใช้เมธอด translate()
โดยส่ง Mapping Table เข้าไปเป็นอากิวเมนต์
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 เพื่อแทนที่อักขระทีละหลายตัว
เราสามารถใช้เมธอด maketrans()
สร้าง Mapping Table เพื่อแทนที่อักขระทีละหลาย ๆ ตัวได้ โดยกำหนดพารามิเตอร์ตัวแรกกับตัวที่ 2 ให้มีความยาวเท่ากัน ระบุอักขระที่จะต้องถูกแทนที่ และอักขระที่จะใช้แทนที่ลงไป
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”
- ตัวแปร
ลบอักขระบางตัวออกจากสตริง
ถ้าต้องการลบอักขระบางตัวออกจากสตริง ในขั้นตอนการสร้าง Mapping Table ให้ระบุพารามิเตอร์ตัวที่ 3 กำหนดอักขระที่ต้องการให้ลบ
str = "Hi John!" x = "hoJ" y = "raK" z = "iH " table = str.maketrans(x, y, z) print(str.translate(table))
Karn!
- บรรทัดที่ 4 สร้างตัวแปร
z
เก็บอักขระที่ต้องการให้ลบ คือ “i” “H” และช่องว่าง ” “ - บรรทัดที่ 5 ส่งตัวแปร
z
เป็นพารามิเตอร์ตัวที่ 3 ในเมธอดmaketrans()
อักขระที่ตรงกับอักขระในตัวแปร z
ก็จะถูกลบออกไป