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

Python ลบอักขระออกจากสตริง:A Guide

คุณสามารถลบอักขระออกจากสตริง Python ได้โดยใช้replace() หรือ translate() ทั้งสองวิธีนี้จะแทนที่อักขระหรือสตริงด้วยค่าที่กำหนด หากระบุสตริงว่างไว้ อักขระหรือสตริงที่คุณเลือกจะถูกลบออกจากสตริงโดยไม่มีการแทนที่

Python ลบอักขระออกจากสตริง

ไม่ใช่ทุกสตริงที่มีค่าที่เราต้องการให้มีค่า ผู้ใช้อาจแทรกสัญลักษณ์ลงในช่องป้อนข้อมูลที่คุณไม่ต้องการให้ปรากฏ คุณอาจต้องการลบตัวอักษรบางตัวออกจากสตริง

ไม่สำคัญว่าคุณต้องการลบอักขระใดออกจากสตริง Python ช่วยคุณได้!

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

เราจะหารือเกี่ยวกับแนวทางต่อไปนี้:

  • ใช้วิธีการแทนที่ ()
  • การใช้เมธอด transform()
  • การลบอักขระตัวสุดท้ายโดยใช้การจัดทำดัชนี

เริ่มกันเลย!

ลบอักขระออกจากสตริง Python:แทนที่ ()

สตริง replace() ฟังก์ชั่นแทนที่อักขระด้วยอักขระใหม่ ฟังก์ชันนี้สามารถใช้เพื่อแทนที่อักขระใดๆ ด้วยสตริงว่าง

เรากำลังสร้างโปรแกรมที่ขอให้ผู้ใช้ใส่ชื่อผู้ใช้ ไม่อนุญาตให้ใช้เครื่องหมายขีดล่าง (_) ในชื่อผู้ใช้ เปิดไฟล์ Python ใหม่แล้ววางในโค้ดต่อไปนี้:

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

ชื่อผู้ใช้ =input("เลือกชื่อผู้ใช้:")final_username =username.replace("_", "")print("ชื่อผู้ใช้ของคุณคือ:" + final_username)

รหัสนี้ขอให้ผู้ใช้เลือกชื่อผู้ใช้โดยใช้วิธีการ input()

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

เริ่มต้นโปรแกรมของเรา:

เลือกชื่อผู้ใช้:pythonista_101ชื่อผู้ใช้ของคุณคือ:pythonista101

รหัสของเราได้ลบอักขระขีดล่างออกจากชื่อผู้ใช้ที่เราระบุ รหัสของเราใช้ได้กับสตริงที่ไม่มีขีดล่าง:

เลือกชื่อผู้ใช้:pythonista101ชื่อผู้ใช้ของคุณคือ:pythonista101

เมื่อชื่อผู้ใช้ไม่มีขีดล่าง จะไม่มีอะไรเกิดขึ้น

ลบอักขระหลายตัวโดยใช้การแทนที่ ()

จะเกิดอะไรขึ้นหากคุณต้องการลบอักขระหลายตัวออกจากสตริง ไพทอนสามารถช่วยคุณได้ เราสามารถใช้ replace() เมธอดภายใน for loop เพื่อลบอักขระหลายตัวออกจากสตริง

ในตัวอย่างที่แล้ว เราลบอักขระขีดล่างออกจากชื่อผู้ใช้ จะเป็นอย่างไรถ้าเราต้องการลบจุดทั้งหมด (หยุดเต็ม) ขีดล่าง และเครื่องหมายอัศเจรีย์ออกจากสตริงของเรา สร้างไฟล์ Python ใหม่แล้ววางในโค้ดนี้:

ชื่อผู้ใช้ =อินพุต("เลือกชื่อผู้ใช้:")disallowed_characters ="._!"สำหรับอักขระใน disallowed_characters:username =username.replace(character, "")print("ชื่อผู้ใช้ของคุณคือ:" + ชื่อผู้ใช้) 

อันดับแรก เราได้ขอให้ผู้ใช้เลือกชื่อผู้ใช้ เราได้กำหนดสตริงที่มีอักขระทั้งหมดที่ไม่ควรปรากฏในชื่อผู้ใช้ของผู้ใช้

ต่อไป เราได้สร้าง for loop สิ่งนี้สำหรับการวนซ้ำวนซ้ำทุกอักขระในสตริง “disallowed_characters” ในการวนซ้ำแต่ละครั้ง อักขระที่วนซ้ำ for จะถูกแทนที่ด้วยสตริง "ชื่อผู้ใช้" ด้วยอักขระว่าง

เรียกใช้รหัสของเรา:

เลือกชื่อผู้ใช้:pythonista.101!!!ชื่อผู้ใช้ของคุณคือ:pythonista101

รหัสของเราได้กรองระยะเวลาและเครื่องหมายอัศเจรีย์ออก

ลบอักขระออกจากสตริง Python:translate()

Python translate() วิธีการแทนที่อักขระในสตริงตามเนื้อหาของตารางอักขระ เมธอดนี้ยอมรับหนึ่งอาร์กิวเมนต์:ตารางการแปลพร้อมอักขระที่จะแมป

ในการใช้วิธีนี้ เราต้องสร้างตารางการแปล ตารางนี้ระบุว่าควรเปลี่ยนอักขระใดในสตริง

มาใช้ translate() . กันเถอะ วิธีการลบขีดล่างทั้งหมดจากชื่อผู้ใช้:

ชื่อผู้ใช้ =input("เลือกชื่อผู้ใช้:")final_username =username.translate({ ord("_"):None })print("ชื่อผู้ใช้ของคุณคือ:" + final_username)

รหัสนี้จะแทนที่ทุก ๆ อินสแตนซ์ของอักขระ "_" ด้วยค่าไม่มี วิธี Python ord() ส่งกลับรหัส Unicode ที่เกี่ยวข้องกับอักขระ “_” ใช้โดย translate() วิธีการระบุตัวละครที่เราต้องการลบออก

ลบอักขระหลายตัวโดยใช้ translate()

คุณสามารถลบอักขระหลายตัวออกจากสตริงได้โดยใช้ translate() .

เราสามารถทำได้โดยการสร้างตัววนซ้ำซึ่งวนรอบรายการอักขระที่เราต้องการลบออกจากสตริง

มาลบขีดล่าง จุด และเครื่องหมายอัศเจรีย์ทั้งหมดออกจากชื่อผู้ใช้:

ชื่อผู้ใช้ =อินพุต("เลือกชื่อผู้ใช้:")final_username =username.translate({ ord(c):ไม่มีสำหรับ c ใน "._!" })print("ชื่อผู้ใช้ของคุณคือ:" + final_username) 

translate() เมธอดจะตรวจสอบว่าอักขระแต่ละตัวในสตริง "ชื่อผู้ใช้" มีค่าเท่ากับจุดหยุดทั้งหมด เครื่องหมายอัศเจรีย์ หรือขีดล่างหรือไม่ หากพบหนึ่งในอักขระเหล่านี้ จะถูกแทนที่ด้วยไม่มี การดำเนินการนี้จะลบอักขระออกจากสตริง

เรากำลังใช้การทำความเข้าใจรายการ Python เพื่อทำซ้ำทุกอักขระในรายการอักขระที่ยกเว้น

มาทดสอบโปรแกรมของเรากัน:

เลือกชื่อผู้ใช้:pythonista_100!ชื่อผู้ใช้ของคุณคือ:pythonista101

รหัสของเราลบอักขระพิเศษทั้งหมดที่เราระบุออกจากสตริงเรียบร้อยแล้ว

Python:ลบอักขระตัวสุดท้ายออกจากสตริง

หากต้องการลบอักขระตัวสุดท้ายออกจากสตริง ให้ใช้สัญกรณ์สไลซ์ [:-1] สัญกรณ์นี้เลือกอักขระที่ตำแหน่งดัชนี -1 (อักขระตัวสุดท้ายในรายการ) จากนั้น ไวยากรณ์จะส่งกลับทุกอักขระยกเว้นตัวนั้น

ไวยากรณ์สำหรับการลบอักขระตัวสุดท้ายออกจากสตริงคือ:

your_string ="A string"print(your_string[:-1])

เอาตัวอย่างอักขระตัวสุดท้ายออก

เราต้องการสร้างโปรแกรมที่ลบอักขระตัวสุดท้ายออกจากตัวระบุพนักงาน ตัวละครนี้บอกเราถึงแผนกที่พนักงานทำงาน

ตัวอย่างเช่น ค่า “M” บอกเราว่าพนักงานทำงานให้กับแผนกการตลาด เราจะลบตัวละครนี้ ระบบติดตามพนักงานนี้กำลังถูกแทนที่ด้วยระบบใหม่ ระบบใหม่จะติดตามแผนกที่พนักงานทำงาน

เริ่มต้นด้วยการขอให้ผู้ใช้แทรกตัวระบุพนักงานโดยใช้วิธีการ input():

identifier =input("ตัวระบุพนักงานคืออะไร")

ต่อไป เราจะลบอักขระตัวสุดท้ายออกจากตัวระบุ:

new_identifier =ตัวระบุ[:-1]

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

print("ตัวระบุใหม่ของพนักงานคือ {}.".format(new_identifier))

คำสั่ง format() แทนที่วงเล็บปีกกาภายในสตริงของเราด้วยตัวระบุใหม่ของพนักงาน เรียกใช้โค้ดของเราแล้วดูว่าเกิดอะไรขึ้น:

ตัวระบุพนักงานคืออะไร? 28371Mตัวระบุใหม่ของพนักงานคือ 28371

โปรแกรมของเราลบค่าสุดท้ายในตัวระบุพนักงาน

บทสรุป

คุณสามารถลบอักขระหนึ่งตัวหรือหลายตัวออกจากสตริงได้โดยใช้ replace() หรือ translate() . ทั้ง replace() และ translate() วิธีการส่งคืนผลลัพธ์เดียวกัน:สตริงที่ไม่มีอักขระที่คุณระบุ

สำหรับผู้เริ่มต้น replace() วิธีใช้ง่ายกว่า เนื่องจากยอมรับเพียงสองพารามิเตอร์เท่านั้น

พารามิเตอร์แรกคืออักขระที่คุณต้องการแทนที่ พารามิเตอร์ที่สองของเราคือค่าที่คุณต้องการแทนที่อักขระ หากต้องการแทนที่อักขระหลายตัว คุณสามารถใช้ a for loop ได้

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