У меня есть несколько таких буквенно-цифровых строк
listOfNum = ['000231512-n','1209123100000-n00000','alphanumeric0000', '000alphanumeric']
Желаемый результат для удаления конечных нулей будет:
listOfNum = ['000231512-n','1209123100000-n','alphanumeric', '000alphanumeric']
Желаемый результат для начальных конечных нулей будет:
listOfNum = ['231512-n','1209123100000-n00000','alphanumeric0000', 'alphanumeric']
Желаемый результат удаления начальных и конечных нулей будет:
listOfNum = ['231512-n','1209123100000-n', 'alphanumeric', 'alphanumeric']
Пока я делаю это следующим образом, пожалуйста, предложите лучший способ, если он есть:
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"
: если ваша строка превращается в пустую строку, она будет оцениваться какFalse
или и будет заменена на нужную строку"0"
Удалите начальный + завершающий '0':
Удалите ведущий "0":
Удалите завершающий '0':
источник
Вы можете просто сделать это с помощью bool:
источник
alphanumeric0000
по запросу OP.Вы пробовали использовать strip () :
источник
str.strip
- лучший подход для этой ситуации, ноmore_itertools.strip
также и общее решение, которое удаляет как ведущие, так и замыкающие элементы из итерации:Код
подробности
Обратите внимание, здесь мы удаляем как начальные, так и конечные
"0"
элементы среди других элементов, удовлетворяющих предикату. Этот инструмент не ограничивается струнами.См. Также документы для получения дополнительных примеров
more_itertools.strip
: зачистить оба концаmore_itertools.lstrip
: зачистить левый конецmore_itertools.rstrip
: зачистить правый конецmore_itertools
- это сторонняя библиотека, которую можно установить через> pip install more_itertools
.источник
Предполагая, что в вашем списке есть другие типы данных (и не только строка), попробуйте это. Это удаляет завершающие и ведущие нули из строк и оставляет нетронутыми другие типы данных. Это также обрабатывает особый случай s = '0'
например
источник