Tôi đang cố xóa 3 ký tự cuối cùng khỏi một chuỗi trong python, tôi không biết những ký tự này là gì nên tôi không thể sử dụng rstrip
, tôi cũng cần xóa bất kỳ khoảng trắng nào và chuyển sang chữ hoa
một ví dụ sẽ là:
foo = "Bs12 3ab"
foo.replace(" ", "").rstrip(foo[-3:]).upper()
Điều này hoạt động và mang lại cho tôi BS12, đó là những gì tôi muốn, tuy nhiên nếu các ký tự thứ 4 và thứ 3 giống nhau thì tôi mất cả hai, ví dụ nếu foo = "BS11 1AA"
tôi chỉ nhận được'BS'
ví dụ về foo
có thể là:
BS1 1AB
bs11ab
BS111ab
Chuỗi có thể là 6 hoặc 7 ký tự và tôi cần bỏ 3 ký tự cuối cùng (giả sử không có khoảng trắng)
Bất cứ lời khuyên?
''.join(foo.split())
tốt hơnfoo.replace(' ', '')
, khi được sử dụng trên các chuỗi unicode vì nó loại bỏ bất kỳ ký tự khoảng trắng nào , ngoài' '
ký tự (đặc biệt, các khoảng trắng không bị phá vỡ cũng bị loại bỏ). Điều đóreplace()
có lẽ nhanh hơn nhiều, vì vậy nó có thể được sử dụng nếu, giả sử, các chuỗi đầu vào được biết là được mã hóa trong ASCII, chỉ có một ký tự khoảng