如何将python的整数列表转换为十六进制列表

我有一个列表,a=[0,1]我想改变 a=[0x00,0x001]类型。我怎样才能做到这一点?我试过这种方式

print (struct.pack('>h',a))

但我不能改成十六进制


缥缈止盈
浏览 1414回答 3
3回答

呼唤远方

直接使用 hex 应该可以工作:>>> a = [0,1]>>> a = [hex(i) for i in a]>>> a['0x0', '0x1']

慕标5832272

使用hex(...)只会给你最少的前导 0:print( [hex(i) for i in [0,1]])  #  ['0x1', '0x2']您可以将字符串格式化(...)为十六进制和zfill()所需数量的零并'0x'自己添加到它:data = [0,1]as_hex = [ "0x" + format(e,"x").zfill(2) for e in data]print(as_hex)输出:['0x00', '0x01']

跃然一笑

由于你没有描述你想要的结果是什么,我只能猜测:你想把一些数字打包成一个字符串吗?那么无论您使用哪种格式,只要您使用正确的格式字符串,两者都应该可以工作:a = [1, 2]b = [0x01, 0x02]struct.pack(">hh", *a)# > '\x00\x01\x00\x02'struct.pack(">hh", *b)# > '\x00\x01\x00\x02'这是因为a和b是相等的:它并不重要,如果你写的1和2或者如果你喜欢0x01RESP。0x02. 请注意,显示的字符串只是包含值分别为 0、1 和 2 的特殊字符的字符串的表示。你想以十六进制表示输出你的数字吗?在这种情况下,请参阅其他答案。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python