Python zfill и rjust: Добавление нулей в строку в Python
Last updated
Last updated
В этом учебнике вы узнаете, как использовать метод zfill
в Python для дополнения строки ведущими нулями. Вы узнаете, как работает этот метод и как дополнить нулями строку и число. Вы также узнаете, как использовать этот метод в Pandas, а также как использовать префиксы знаков, такие как +
или -
, в вашем дополнении. Наконец, вы узнаете некоторые альтернативы методу zfill
в Python, которые предоставляют различную гибкость. Эти альтернативы включают функцию rjust
и использование форматирования строк для дополнения и выравнивания вашего текста.
zfill
: ОбзорМетод zfill
в Python – это метод строки, который возвращает копию строки, дополненной слева символом '0'
до достижения заданной ширины.
Метод принимает один параметр, width
. Этот параметр используется для задания ширины желаемой строки. Давайте рассмотрим метод:
Параметр width
обязателен. Метод вызовет ошибку TypeError, если ширина не передана. Аналогично, метод вызовет ошибку TypeError, если передано значение с плавающей точкой, а не целое число. Позже в этом учебнике вы узнаете, что происходит, когда передаются определенные типы ширин.
В следующем разделе вы узнаете краткий обзор того, почему вам может понадобиться дополнить строку нулями в Python.
Существует множество причин, по которым вам может понадобиться дополнить строку нулями в Python. Например, во многих устаревших финансовых приложениях системы данных ожидают ввод определенной длины. Чтобы вставить данные в эти системы, вам может понадобиться дополнить данные нулями.
Аналогично, при импорте данных в Python ключ может быть интерпретирован как число, что приводит к удалению ведущих нулей. Это создает проблемы при последующем объединении наборов данных. Дополнение нулями строки, похожей на число, позволяет безопасно переформатировать данные для объединения по фреймам данных.
zfill
для дополнения строки нулямиМетод zfill
в Python используется для создания копии строки с нулями, дополняющими строку до определенной ширины. Давайте попробуем пример:
Мы видим, что метод вернул строку с нулями, дополняющими левую сторону.
Помните, строки в Python неизменяемы, что означает, что их нельзя изменить. Мы можем проверить это, применив метод, а затем распечатав исходную строку:
Если мы хотим "обновить" нашу строку (помните, это фактически не обновит строку, а создаст новую), нам нужно переназначить ее. Давайте посмотрим, как это выглядит:
Мы видим, что успешно переназначили строку самой себе с примененным методом .zfill()
.
Хотите узнать, какой тип данных возвращает метод .zfill()
? Мы можем легко сделать это с помощью функции type
. Давайте посмотрим, что это возвращает:
Неудивительно, что метод zfill
возвращает тип данных строки.
Давайте посмотрим, что происходит, когда передаваемая ширина короче исходной строки:
Если ширина либо короче, либо такой же длины, как исходная строка, метод просто возвращает копию исходной строки.
zfill
с числамиПоскольку метод zfill
является методом строки, его можно использовать только со строками. Могут быть случаи, когда вы хотите дополнить число ведущими нулями. Давайте посмотрим, что происходит, когда мы пытаемся применить метод zfill
к целому числу:
Мы видим, что при попытке применить метод к целому числу возникает ошибка AttributeError.
Чтобы предотвратить эту ошибку, нам нужно сначала преобразовать целое число в строку. Мы можем сделать это с помощью функции str()
. Давайте посмотрим, как это выглядит:
Важно отметить, что это больше не целое число! Это фактически результат в строке. Это означает, что мы не можем выполнять операции, которые обычно ассоциируются с числами, такие как сложение.
В следующем разделе вы узнаете, как использовать метод zfill
в фрейме данных Pandas для дополнения нулями всего столбца.
zfill
Могут быть случаи, когда вы хотите, чтобы значения в ваших фреймах данных Pandas были дополнены нулями слева. Pandas фактически реализует метод zfill
непосредственно в фрейме данных Pandas, что означает, что мы можем применить функцию в векторизованном формате.
Чтобы увидеть, как это работает, давайте сначала импортируем пример фрейма данных Pandas:
Предположим, мы хотим дополнить значения столбца ID. Мы можем просто применить метод str.zfill()
к нашему столбцу данных. Поскольку эти значения неизменяемы, нам нужно быть внимательными, чтобы переназначить значения самим себе.
Мы видим, как легко дополнить столбец нулями. Поскольку значения в нашем столбце не являются строками, сначала нужно преобразовать их в строки с помощью метода .astype()
. Если наш столбец уже состоял из строк, мы могли бы пропустить этот шаг.
Метод zfill
в Python действительно хорошо работает, когда мы хотим назначить префиксы знаков, такие как +
или -
, к строке, дополненной нулями. Нам просто нужно включить префикс знака, который мы хотим, и Python позаботится об остальном.
Давайте посмотрим, как это выглядит:
Мы видим, что Python умно переместил префикс знака в начало строки! Это позволяет нам легко убедиться, что префиксы знаков учтены.
Важно отметить, что префикс знака включен в ширину строки. Поскольку мы передали ширину 5, мы могли ожидать, что возвращенная копия будет включать три нуля. Однако, поскольку полная ширина составляет 5, включая знак, было добавлено только два дополнительных нуля.
В следующих двух разделах вы узнаете две альтернативы методу zfill
!
Могут быть случаи, когда вы хотите дополнить строку, но не хотите, чтобы она была заполнена нулями. В этих случаях может быть полезно использовать метод строки rjust
.
Метод rjust
применяется к строке и принимает два параметра: (1) ширину результирующей строки и (2) символ, используемый для дополнения исходной строки.
Давайте использовать пробел для дополнения нашей строки с помощью метода rjust
:
Преимущество этого подхода заключается в том, что мы можем использовать любой символ для дополнения наших строк.
В заключительном разделе вы узнаете, как использовать форматирование строк для дополнения строки.
В этом заключительном разделе вы узнаете, как использовать форматирование строк в Python для дополнения строки слева.
Python делает это довольно просто. Давайте посмотрим, как мы можем использовать традиционное форматирование строк для дополнения строки:
Мы используем :0
, чтобы попросить Python использовать 0
для дополнения нашей строки, и >10
, чтобы указать дополнение слева для ширины десять.
Аналогично, мы можем использовать Python f-strings для дополнения строки:
Этот подход немного более читабелен, так как он сразу показывает, какую строку вы хотите дополнить.
В этом учебнике вы узнали, как использовать метод zfill
в Python для дополнения строки нулями слева. Вы также узнали, как дополнить нулями числа и как дополнить столбец нулями в фрейме данных Pandas. Наконец, вы узнали некоторые альтернативы методу zfill
. Эти альтернативы включают метод rjust
и форматирование строк в Python.
Чтобы узнать о связанных темах, ознакомьтесь с учебниками ниже:
Python: Remove Special Characters from a String
Python: Check If a String is a Palindrome (5 Easy Ways!)
Python: Reverse a String (6 Easy Ways)
Чтобы узнать больше о методе str.zfill()
в Python, ознакомьтесь с официальной документацией .