Estoy tratando de eliminar los últimos 3 caracteres de una cadena en Python, no sé cuáles son estos caracteres, así que no puedo usarlos rstrip
, también necesito eliminar cualquier espacio en blanco y convertirlos a mayúsculas
Un ejemplo sería:
foo = "Bs12 3ab"
foo.replace(" ", "").rstrip(foo[-3:]).upper()
Esto funciona y me da BS12, que es lo que quiero, sin embargo, si los últimos 4 ° y 3 ° caracteres son iguales, pierdo ambos, por ejemplo, si foo = "BS11 1AA"
solo obtengo'BS'
ejemplos de foo
podrían ser:
BS1 1AB
bs11ab
BS111ab
La cadena podría tener 6 o 7 caracteres y necesito soltar los últimos 3 (suponiendo que no haya espacios en blanco)
¿Algun consejo?
''.join(foo.split())
es mejor quefoo.replace(' ', '')
, cuando se usa en cadenas Unicode porque elimina cualquier carácter de espacio en blanco , además del' '
carácter (en particular, también se eliminan los espacios que no se rompen). Dicho estoreplace()
probablemente sea mucho más rápido, por lo que se puede usar si, por ejemplo, se sabe que las cadenas de entrada están codificadas en ASCII, que solo tiene un carácter de espacio (estoy usando la terminología de Python 2, aquí)