ฉันกำลังพยายามลบอักขระ 3 ตัวสุดท้ายจากสตริงในหลามฉันไม่ทราบว่าอักขระเหล่านี้คืออะไรฉันจึงไม่สามารถใช้งานได้rstrip
ฉันต้องลบพื้นที่สีขาวและแปลงเป็นตัวพิมพ์ใหญ่
ตัวอย่างจะเป็น:
foo = "Bs12 3ab"
foo.replace(" ", "").rstrip(foo[-3:]).upper()
มันใช้งานได้และให้ BS12 แก่ฉันซึ่งเป็นสิ่งที่ฉันต้องการ แต่ถ้าตัวอักษรตัวที่ 4 และ 3 ตัวสุดท้ายเหมือนกันฉันก็หลวมทั้งคู่เช่นถ้าfoo = "BS11 1AA"
ฉันเพิ่งได้รับ'BS'
ตัวอย่างของfoo
อาจเป็น:
BS1 1AB
bs11ab
BS111ab
สตริงอาจเป็นอักขระ 6 หรือ 7 ตัวและฉันต้องเลื่อน 3 ตัวสุดท้าย (สมมติว่าไม่มีช่องว่าง)
เคล็ดลับใด ๆ
''.join(foo.split())
ดีกว่าfoo.replace(' ', '')
เมื่อใช้กับสตริง Unicode เพราะมันลบตัวละครช่องว่างใด ๆนอกเหนือจาก' '
ตัวละคร (โดยเฉพาะอย่างยิ่งพื้นที่ที่ไม่ทำลายจะถูกลบออกด้วย) ที่กล่าวว่าreplace()
อาจเร็วกว่ามากดังนั้นจึงสามารถใช้ถ้าพูดว่าสตริงการป้อนข้อมูลถูกเข้ารหัสใน ASCII ซึ่งมีอักขระช่องว่างเดียวเท่านั้น (ฉันใช้คำศัพท์ Python 2 ที่นี่)