Eu tenho várias strings alfanuméricas como essas
listOfNum = ['000231512-n','1209123100000-n00000','alphanumeric0000', '000alphanumeric']
A saída desejada para remover os zeros finais seria:
listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
A saída desejada para zeros à esquerda seria:
listOfNum = ['231512-n','1209123100000-n00000','alphanumeric0000', 'alphanumeric']
A saída desejada para remover os zeros à esquerda e à direita seria:
listOfNum = ['231512-n','1209123100000-n', 'alphanumeric', 'alphanumeric']
Por enquanto, estou fazendo da seguinte maneira, por favor, sugira uma maneira melhor se houver:
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"
: se sua string se transformar em uma string vazia, ela será avaliada comoFalse
por ou e será substituída pela string desejada"0"
Remover '0' inicial + final:
Remova o '0' inicial:
Remova o '0' final:
fonte
Você pode simplesmente fazer isso com um bool:
fonte
alphanumeric0000
o OP solicitado.Você tentou com strip () :
fonte
str.strip
é a melhor abordagem para essa situação, masmore_itertools.strip
também é uma solução geral que remove os elementos iniciais e finais de um iterável:Código
Detalhes
Observe, aqui removemos tanto o primeiro como o final
"0"
s entre outros elementos que satisfazem um predicado. Esta ferramenta não se limita a strings.Veja também os documentos para mais exemplos de
more_itertools.strip
: tira ambas as pontasmore_itertools.lstrip
: tira a extremidade esquerdamore_itertools.rstrip
: tira a extremidade direitamore_itertools
é uma biblioteca de terceiros instalável via> pip install more_itertools
.fonte
Supondo que você tenha outros tipos de dados (e não apenas string) em sua lista, tente fazer isso. Isso remove os zeros à direita e à esquerda das strings e deixa outros tipos de dados intactos. Isso também lida com o caso especial s = '0'
por exemplo
fonte