Tengo varias cadenas alfanuméricas como estas
listOfNum = ['000231512-n','1209123100000-n00000','alphanumeric0000', '000alphanumeric']
La salida deseada para eliminar los ceros finales sería:
listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
La salida deseada para líderes ceros que se arrastran sería:
listOfNum = ['231512-n','1209123100000-n00000','alphanumeric0000', 'alphanumeric']
La salida deseada para eliminar los ceros iniciales y finales sería:
listOfNum = ['231512-n','1209123100000-n', 'alphanumeric', 'alphanumeric']
Por ahora lo he estado haciendo de la siguiente manera, sugiera una mejor manera si la hay:
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 su cadena se convierte en la cadena vacía, se evaluará comoFalse
por o y será reemplazada por la cadena deseada"0"
Eliminar '0' inicial + final:
Quite el '0' inicial:
Eliminar '0' final:
fuente
Simplemente puede hacer esto con un bool:
fuente
alphanumeric0000
OP solicitado.Intentaste con strip () :
fuente
str.strip
es el mejor enfoque para esta situación, peromore_itertools.strip
también es una solución general que elimina los elementos iniciales y finales de un iterable:Código
Detalles
Observe que aquí eliminamos las
"0"
s iniciales y finales entre otros elementos que satisfacen un predicado. Esta herramienta no se limita a cadenas.Consulte también la documentación para obtener más ejemplos de
more_itertools.strip
: pelar ambos extremosmore_itertools.lstrip
: tira el extremo izquierdomore_itertools.rstrip
: tira el extremo derechomore_itertools
es una biblioteca de terceros que se puede instalar a través de> pip install more_itertools
.fuente
Suponiendo que tiene otros tipos de datos (y no solo cadenas) en su lista, intente esto. Esto elimina los ceros iniciales y finales de las cadenas y deja intactos otros tipos de datos. Esto también maneja el caso especial s = '0'
p.ej
fuente