Я пытаюсь удалить последние 3 символа из строки в 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)