#python #arrays #python-3.x
Вопрос:
Если у меня есть массив байтов
aaa=b'x02xc0x00x48x04'
и я хочу отобразить его в шестнадцатеричном формате, он будет отображать байты в виде
b'x02xc0x00Hx04'
который представляет собой смесь шестнадцатеричных и ASCII-символов. Это не очень удобно читать, когда массив слишком велик.
Команда, которую я использую, такова
print(' '.join(hex(n) for n in aaa))
На выходе получается
0x2 0xc0 0x0 0x48 0x4
Это все еще отличается от моего идеального представления:
02 C0 00 48 04
Как я могу этого достичь?
Комментарии:
1. Один из вариантов:
" ".join(f"{a:02X}" for a in aaa)
2. @JohnnyMopp, да, это работает
3. другой вариант
aaa.hex(' ').upper()
Ответ №1:
Спасибо @furas. Решение заключается в следующем
aaa.hex(' ').upper()
В результате будет
'02 C0 00 48 04'
Ответ №2:
Вы можете отформатировать строки:
' '.join(f'{:02X}' for n in aaa)