В Python как я могу преобразовать однозначное число в длину двойной цифры?
Вопрос
Так сказать, у меня есть
A = 5.
Я хочу распечатать его как строку «05»
Решение
print "%02d"%a
Вариант Python 2
Python 3 использует несколько более многослойную систему форматирования:
"{0:0=2d}".format(a)
Соответствующая ссылка DOC для Python2: http://docs.cython.org/2/library/string.html#format-specation-mini-language.
Для Python3, это http://docs.cython.org/3/library/string.html#string-formatting.
Другие советы
a = 5
print '%02d' % a
# output: 05
Оператор «%» называется Форматирование строки Оператор при использовании со строкой на левой стороне. '%d'
Является ли код форматирования для распечатки целочисленного числа (вы получите ошибку типа, если значение не является числовым). С '%2d
Вы можете указать длину, а также '%02d'
Может использоваться для установки характера заполнения на 0 вместо места по умолчанию.
>>> print '{0}'.format('5'.zfill(2))
05
Прочитайте больше здесь.
>>> a=["%02d" % x for x in range(24)]
>>> a
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']
>>>
Это так просто
В Python3 вы можете:
print("%02d" % a)
Отделение от ответа Моумада:
str_years = [x for x in range(24)]
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
#Or, if you're starting with ints:
int_years = [int(x) for x in str_years]
#Formatted here
form_years = ["%02d" % x for x in int_years]
print(form_years)
#['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']
df["col_name"].str.rjust(4,'0')#(length of string,'value') --> ValueXXX --> 0XXX
df["col_name"].str.ljust(4,'0')#(length of string,'value') --> XXXValue --> XXX0