Как убрать ведущие нули в питоне
Перейти к содержимому

Как убрать ведущие нули в питоне

Как удалить ведущие и конечные нули в строке? Питон

Желаемый результат для удаления задний нули будут:

Желаемый результат для ведущий конечные нули будут:

Выход желания для удаления как начальных, так и конечных нулей будет:

На данный момент я делаю это следующим образом, пожалуйста, предложите лучший способ, если есть:

7 ответы

Что насчет базового

удалить конечные и ведущие нули? Если вас интересует только удаление конечных нулей, используйте .rstrip вместо этого (и .lstrip только для ведущих).

Больше информации в Док.

Вы можете использовать некоторое понимание списка, чтобы получить последовательности, которые вы хотите, например:

Есть ли какая-то умная корректировка этого ответа для особого случая s = ‘0’ ? — Чарльз

@Чарльз: Да! У меня была такая же проблема, и вы можете сделать s.strip(«0») or «0» : если ваша строка превратится в пустую строку, она будет оцениваться как False или и будет заменено на нужную строку «0» — Tarulen

@Pierre GM Спасибо. Это действительно помогает, и это очень просто. Проголосовал за это — Вишав Гупта

Удалить начальный + конечный «0»:

Удалить ведущий «0»:

Удалить завершающий «0»:

ответ дан 30 окт ’12, 15:10

Вы можете просто сделать это с помощью bool:

ответ дан 05 мар ’16, в 13:03

Не работает с alphanumeric0000 как просил ОП. — Калле Рихтер

ответ дан 30 окт ’12, 15:10

Предполагая, что в вашем списке есть другие типы данных (а не только строки), попробуйте это. Это удаляет завершающие и ведущие нули из строк и оставляет другие типы данных нетронутыми. Это также обрабатывает особый случай s = ‘0’

ответ дан 24 окт ’19, 21:10

pandas также предлагаем удобный способ:

Первый даст, например:

Это может быть более удобно при работе с DataFrames

ответ дан 14 окт ’21, 17:10

str.strip это лучший подход для этой ситуации, но more_itertools.strip также является общим решением, которое удаляет как ведущие, так и конечные элементы из итерации:

Код:

Подробнее

Обратите внимание, здесь мы удаляем как начальные, так и конечные строки. «0» s среди других элементов, удовлетворяющих предикату. Этот инструмент не ограничивается строками.

См. также документы для получения дополнительных примеров

    : зачистите оба конца : зачистить левый конец : зачистите правый конец

more_itertools это сторонняя библиотека, которую можно установить через > pip install more_itertools .

Мини-язык форматирования

Инструкции (спецификации) мини-языка могут передаваться напрямую встроенной функции format().

Большинство встроенных типов использует инструкции, описанные ниже. Некоторые типы форматирования поддерживаются только числовыми типами.

Общий вид инструкции: [[заполнение]равнение][знак][‘#’][‘0’][минразмер][‘,’][‘.’точность][тип] .

1.Заполнение

Заполнение можно указать, если указано равнение. В качестве заполнения может выступать любой символ. Если символ не указан, то будет использован ‘ ‘ (пробел).

2. Равнение

Равнение может быть указано следующими способами:

< Равнение влево. Используется по умолчанию для большинства объектов.
Равнение вправо. Используется по умолчанию для чисел.
= Для чисел. Добавляет отступ после знака (если есть), но перед числом. Пример: +000000120 . Становится вариантом по умолчанию, если 0 предшествует длине.
^ Центровка.
3. Знак

Знак используется только для числовых типов:

+ Использовать знак и для положительных и для отрицательных.
Использовать знак только для отрицательных. Используется по умолчанию.
пробел Добавить пробел перед положительным и минус перед отрицательным.
4. Альтернативное представление

# — использовать альтернативную форму представления. Разные типы предлагают разные альтернативные формы. Опция доступна для целых, чисел с плавающей запятой, комплексных и десятичных.

  • Для целых, когда используются двоичная восьмеричная и шестнадцатеричная формы, опция добавляет префиксы 0b , 0o и 0x соответственно.
  • Для чисел с плавающей запятой, комплексных и десятичных альтернативная форма подразумевает наличие точки (разделителя), даже если за ней не следуют цифры. В обычной форме разделитель ставится, только если за ним следует цифра. Кроме того, для преобразований типа g и G (см. ниже) нули в конце числа не отсекаются.
5. Тысячный разделитель

+py2.7 +py3.1 , — использовать запятую в качестве тысячного разделителя. Чтобы использовать разделитель, заданный локалью, используйте тип преобразования целых n (см. ниже). Смотрите также PEP 378.

6. Ведущие нули

0 — Если не задано равнение, то нуль перед минразмер включает добавление перед числом нулей, зависящее от его знака.

7. Минимальный размер

Минразмер — это целое, задающее минимальный размер (длину) значения. Если не указыается, то будет использована длина самого значения.

8. Точность
  • Для чисел с плавающей запятой — это количество цифр, которые требуется вывести после десятичного разделителя (для форматирования f и F ), либо до и после разделителя (для форматирования g и G ).
  • Для целых точность не обрабатывается.
  • Для прочих типов — это количество знаков, которые требуется взять из значения.
9. Тип

Тип — это тип представления, который требуется использовать.

Типы для строк

s Строка. Этот тип используется по умолчнию, его можно не указывать.
None То же, что и s .

Типы для целых

b Двоичный вид. Число по основанию 2.
c Символ. Представляет целое в виде соответствующего Unicode-символа.
d Десятичная форма. Число по основанию 10.
o Восьмеричная форма. Число по основанию 8.
x , X Шестнадцатеричная форма. Число по основанию 16. Буквы в нижнем и в верхнем регистре соответственно.
n Число. То же, что и d , только символы-разделители будут зависеть от настроек используемой локали.
None То же, что и d .

Типы для чисел с плавающей запятой и для десятичных

e , E С плавающей запятой (нижний и верхний регистр соответственно). Экспоненциальный формат. ※
f , F С фиксированной запятой (нижний и верхний регистр для nan и inf соответственно). ※
g , G Общий вид (нижний и верхний регистр соответственно). Для заданной точности p >= 1 , округляет число до p значащих цифр и представляет результат, используя либо число с фиксированной запятой, либо научный формат, в зависимости от величины этого числа. Точность 0 трактуется эквивалентно точности 1 . ※ ※※
n Число. То же, что и g , только символы-разделители будут зависеть от настроек используемой локали.
% Процент. Умножает число на 100 и использует f для вывода. В конце ставится % .
None Похоже на g , за исключением случая, когда используется вид с фиксированной запятой, при этом за разделителем следует по меньшей мере одна цифра. Точность по умолчанию в этом случае устанавливается достаточной для представления заданного значения. Общий эффект соответствует применению str(), с применением прочих модификаций формата.

※ Точность по умолчанию: 6.

※※ Правила приведения. Пусть результат отформатирован при помощи e и точность p-1 использует экспоненту exp . Если -4 <= exp < p , то число будет отформатировано при помощи f с точностью p-1-exp . Иначе число будет отформатировано при помощи e с точностью p-1 . В обоих случаях незначащие нули справа обрубаются. Кроме того, удаляется разделитель, если за ним не следуют цифры. При этом вне зависимости от точности плюс бесконечность, минус бесконечность, плюс нуль, минус нуль и nan будут представлены соответственно: inf , -inf , 0 , -0 , nan .

python, устраняющий ведущие нули в функции

У меня есть функция foo(): они берут байты, объединяют их и возвращают значение int. однако, когда я передаю foo (’99 ‘,’ 00 ‘), ведущее 0 байта будет обрезано. в результате получается строка «990» вместо «9900».

Мне было интересно, был ли изящный способ сказать python, что я хочу, чтобы параметры обрабатывались как строка вместо int. Я могу сделать обходной путь (показано ниже), чтобы убедиться, что для каждого параметра есть две цифры. Просто интересно, есть ли другой способ сделать это

Edit: foo (99,00), а не foo (’99 ‘,’ 00 ‘) — это то, что дает мне проблемы, с которыми я имею дело

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *