J'essaie de supprimer les 3 derniers caractères d'une chaîne en python, je ne sais pas ce que sont ces caractères donc je ne peux pas utiliser rstrip, j'ai également besoin de supprimer tout espace blanc et de convertir en majuscules
un exemple serait:
foo = "Bs12 3ab"
foo.replace(" ", "").rstrip(foo[-3:]).upper()
Cela fonctionne et me donne BS12 qui est ce que je veux, mais si les 4ème et 3ème derniers caractères sont les mêmes, je perds les deux, par exemple si foo = "BS11 1AA"je viens de recevoir'BS'
des exemples de foopourraient être:
BS1 1AB
bs11ab
BS111ab
La chaîne peut contenir 6 ou 7 caractères et je dois supprimer les 3 derniers (en supposant qu'il n'y a pas d'espace blanc)
Des conseils?
''.join(foo.split())c'est mieux quefoo.replace(' ', ''), lorsqu'il est utilisé sur des chaînes Unicode, car il supprime tout caractère d' espacement , en plus du' 'caractère (en particulier, les espaces insécables sont également supprimés). Cela dit,replace()c'est probablement beaucoup plus rapide, donc il peut être utilisé si, par exemple, les chaînes d'entrée sont connues pour être codées en ASCII, qui n'a qu'un seul caractère d'espace (j'utilise la terminologie Python 2, ici.)