Estou tentando remover os três últimos caracteres de uma string em python, não sei quais são esses caracteres, então não posso usar rstrip
, também preciso remover qualquer espaço em branco e converter em maiúsculas
um exemplo seria:
foo = "Bs12 3ab"
foo.replace(" ", "").rstrip(foo[-3:]).upper()
Isso funciona e me dá BS12, que é o que eu quero, no entanto, se os últimos 4º e 3º caracteres forem os mesmos, eu perco os dois, por exemplo, se foo = "BS11 1AA"
eu conseguir'BS'
exemplos de foo
poderiam ser:
BS1 1AB
bs11ab
BS111ab
A sequência pode ter 6 ou 7 caracteres e preciso eliminar os 3 últimos (assumindo que não há espaço em branco)
Alguma dica?
''.join(foo.split())
é melhor do quefoo.replace(' ', '')
, quando usado em seqüências de caracteres unicode porque remove qualquer caractere de espaço em branco , além do' '
caractere (em particular, os espaços não quebráveis também são removidos). Dito isto,replace()
provavelmente é muito mais rápido, portanto pode ser usado se, digamos, as seqüências de entrada forem codificadas em ASCII, que possui apenas um caractere de espaço (estou usando a terminologia Python 2, aqui.)