J'ai plusieurs chaînes alphanumériques comme celles-ci
listOfNum = ['000231512-n','1209123100000-n00000','alphanumeric0000', '000alphanumeric']
La sortie souhaitée pour supprimer les zéros de fin serait:
listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
La sortie souhaitée pour les zéros de fin de tête serait:
listOfNum = ['231512-n','1209123100000-n00000','alphanumeric0000', 'alphanumeric']
Le résultat souhaité pour supprimer les zéros de début et de fin serait:
listOfNum = ['231512-n','1209123100000-n', 'alphanumeric', 'alphanumeric']
Pour l'instant, je le fais de la manière suivante, veuillez suggérer une meilleure façon s'il y a:
listOfNum = ['000231512-n','1209123100000-n00000','alphanumeric0000', \
'000alphanumeric']
trailingremoved = []
leadingremoved = []
bothremoved = []
# Remove trailing
for i in listOfNum:
while i[-1] == "0":
i = i[:-1]
trailingremoved.append(i)
# Remove leading
for i in listOfNum:
while i[0] == "0":
i = i[1:]
leadingremoved.append(i)
# Remove both
for i in listOfNum:
while i[0] == "0":
i = i[1:]
while i[-1] == "0":
i = i[:-1]
bothremoved.append(i)
s = '0'
?s.strip("0") or "0"
: si votre chaîne se transforme en chaîne vide, elle sera évaluée commeFalse
par ou et sera remplacée par la chaîne souhaitée"0"
Supprimez les '0' de début et de fin:
Supprimer le premier «0»:
Supprimer le «0» à la fin:
la source
Vous pouvez simplement le faire avec un booléen:
la source
alphanumeric0000
OP demandé.Avez-vous essayé avec strip () :
la source
str.strip
est la meilleure approche pour cette situation, maismore_itertools.strip
c'est aussi une solution générale qui supprime les éléments de début et de fin d'un itérable:Code
Détails
Remarquez, ici, nous supprimons les
"0"
s de début et de fin parmi d'autres éléments qui satisfont un prédicat. Cet outil n'est pas limité aux chaînes.Voir aussi la documentation pour plus d'exemples de
more_itertools.strip
: dénuder les deux extrémitésmore_itertools.lstrip
: dénuder l'extrémité gauchemore_itertools.rstrip
: dénuder l'extrémité droitemore_itertools
est une bibliothèque tierce installable via> pip install more_itertools
.la source
En supposant que vous ayez d'autres types de données (et pas seulement des chaînes) dans votre liste, essayez ceci. Cela supprime les zéros de fin et de début des chaînes et laisse les autres types de données intacts. Cela gère également le cas spécial s = '0'
par exemple
la source