[英]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.