我正在尝试将数字转换为整数列表(最好是十六进制,但是我知道这是通过打印格式控制的):
0xFFFF
应该变成:
[0xFF, 0xFF]
我承认,我对Python处理诸如字节之类的较低级别信息的能力感到非常困惑。数小时来bytes,我一直在阅读有关,bytearray和类似方法的信息,但无法以一种似乎有效的方式成功完成此任务。我正在尝试了解如何以最有效的Python方式进行操作。
到目前为止,这是我针对字符串输入提出的:
>>> [ord(x) for x in '0xFFFF'.replace('0x','').decode('hex')]
[255, 255]
和int输入:
>>> v = 0xFFFF
>>> [ord(x) for x in '{:04x}'.format(v).decode('hex')]
[255, 255]
我知道列表可以这样格式化:
>>> a = list(ord(x) for x in '0xFFFF'.replace('0x','').decode('hex'))
>>>'[{}]'.format(', '.join([hex(x).upper() for x in a]))
'[0XFF, 0XFF]'
有没有更干净的方法来进行转换然后输出格式化?我在Stack Overflow或Google上找不到的任何问题或答案都与这种情况不符,但也许我只是错过了一些东西。任何帮助将不胜感激。
编辑:我很抱歉-我的原始问题并不能完全代表我要完成的任务。为了尽量减少重复性,我跳过了一些重要的事情:0xFFFF应该可以是数字或字符串。可以在单独的操作/功能中执行此操作。
繁华开满天机
临摹微笑
相关分类