Я намагаюся видалити останні три символи з рядка в python, я не знаю, що це за символи, тому я не можу використовувати 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)