У меня есть список из нескольких десятков записей в десятичном формате.
CP111 = [
[0, 0, 0, 0, 0, 0, 0, 0],
[126, 129, 165, 129, 189, 153, 129, 126],
[126, 255, 219, 255, 195, 231, 255, 126],
[108, 254, 254, 254, 124, 56, 16, 0],
[16, 56, 124, 254, 124, 56, 16, 0],
[56, 124, 56, 254, 254, 124, 56, 124],
[16, 16, 56, 124, 254, 124, 56, 124],
[0, 0, 24, 60, 60, 24, 0, 0],
[255, 255, 231, 195, 195, 231, 255, 255],
[0, 60, 102, 66, 66, 102, 60, 0],
];
Мне нужно преобразовать десятичное число в шестнадцатеричное, затем отформатировать шестнадцатеричное число в 4 места и распечатать его без кавычек. Это настолько близко, насколько я понял:
CP111 = [
[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
[0x3e, 0x41, 0x55, 0x43, 0x55, 0x41, 0x3e, 0x0],
[0x3e, 0x7f, 0x6b, 0x7d, 0x6b, 0x7f, 0x3e, 0x0],
[0x38, 0x7c, 0x3e, 0x1f, 0x3e, 0x7c, 0x38, 0x0],
[0x8, 0x1c, 0x3e, 0x7f, 0x3e, 0x1c, 0x8, 0x0],
[0x8, 0x1c, 0x29, 0x7f, 0x29, 0x1c, 0x8, 0x0],
[0x8, 0x1c, 0x3d, 0x7f, 0x3d, 0x1c, 0x8, 0x0],
[0x0, 0x1c, 0x3e, 0x3e, 0x3e, 0x1c, 0x0, 0x0],
[0xff, 0xe3, 0xc1, 0xc1, 0xc1, 0xe3, 0xff, 0xff],
[0x0, 0x1c, 0x22, 0x22, 0x22, 0x1c, 0x0, 0x0]
];
for char in CP111:
print '[{}],'.format(', '.join(hex(x) for x in char))
Получит мне напечатанный гекс, который мне нужен, но не в формате 4 широких отступа
Я пробовал:
print "{0:#0{1}x}".format('[{}]'.format(', '.join(hex(x) for x in font_char)),4)
print '[{}]'.format(', '.join("0x{:04x}".format(hex(x) for x in font_char)))
... и несколько других попыток в одну строку, которые приводят к синтаксическим ошибкам или ValueError: неизвестный код формата 'x' для объекта типа 'str'
Возможно, невозможно поместить его в один line.
Мне нужно:
CP111 = [
[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
[0x3e, 0x41, 0x55, 0x43, 0x55, 0x41, 0x3e, 0x00],
[0x3e, 0x7f, 0x6b, 0x7d, 0x6b, 0x7f, 0x3e, 0x00],
[0x38, 0x7c, 0x3e, 0x1f, 0x3e, 0x7c, 0x38, 0x00],
[0x08, 0x1c, 0x3e, 0x7f, 0x3e, 0x1c, 0x08, 0x00],
[0x08, 0x1c, 0x29, 0x7f, 0x29, 0x1c, 0x08, 0x00]
.....
Помогите пожалуйста