我有一个double
列表,我想更改为a=[0,1]
类型。我怎样才能做到这一点?我尝试过
a=[0x00,0x001]
但是我不能更改为十六进制
答案 0 :(得分:2)
直接使用十六进制应该可以:
spread
答案 1 :(得分:2)
使用hex(...)只会给您最少的前导0:
print( [hex(i) for i in [0,1]]) # ['0x1', '0x2']
您可以format(...)字符串为十六进制,zfill()所需数量的零,并在自己之前加上'0x'
:
data = [0,1]
as_hex = [ "0x" + format(e,"x").zfill(2) for e in data]
print(as_hex)
输出:
['0x00', '0x01']
答案 2 :(得分:1)
由于您无法描述您想要的结果是什么,我只能猜测:
是否要将一些数字打包到字符串中?
然后,使用哪种格式都没关系,只要使用正确的格式字符串,两者都应该可以工作:
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。
是否要以十六进制表示形式输出数字?
在这种情况下,请参阅其他答案。
答案 3 :(得分:0)
下面是将整数列表转换为十六进制列表的另一种方法
a = [0,1]
b = map(hex, a)
# or
b = map(lambda x:hex(x), a)
# output
print b
['0x1', '0x2']
答案 4 :(得分:0)
下面是使用映射函数将整数列表转换为十六进制列表的另一种方法:
a=[0,1]
print(map(hex,a))
# Output
# ['0x0', '0x1']