[英]How to convert python list of interger to list of hex, getting List error “struct.error: required argument is not an integer”
我有一个列表,该列表是a=[0,1]
,我想使用a=[0x00,0x001]
类型进行更改。 我怎样才能做到这一点? 我这样尝试
print (struct.pack('>h',a))
但是我不能换成十六进制
直接使用十六进制应该可以:
>>> a = [0,1]
>>> a = [hex(i) for i in a]
>>> a
['0x0', '0x1']
由于您无法描述所需的结果,因此我只能猜测:
您是否要将一些数字打包到字符串中?
然后,无论使用哪种格式都没关系,只要使用正确的格式字符串,两者都应该可以工作:
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
还是偏好0x01
都没关系。 0x02
。 请注意,显示的字符串仅是包含特殊字符的字符串的表示,这些特殊字符的值分别为0、1和2。
是否要以十六进制表示形式输出数字?
在这种情况下,请参阅其他答案。
下面是将整数列表转换为十六进制列表的另一种方法
a = [0,1]
b = map(hex, a)
# or
b = map(lambda x:hex(x), a)
# output
print b
['0x1', '0x2']
下面是使用map函数将整数列表转换为十六进制列表的另一种方法:
a=[0,1]
print(map(hex,a))
# Output
# ['0x0', '0x1']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.