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 foopoderiam 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.)