3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
直接使用 hex 應(yīng)該可以工作:
>>> a = [0,1]
>>> a = [hex(i) for i in a]
>>> a
['0x0', '0x1']

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
使用hex(...)只會(huì)給你最少的前導(dǎo) 0:
print( [hex(i) for i in [0,1]]) # ['0x1', '0x2']
您可以將字符串格式化(...)為十六進(jìn)制和zfill()所需數(shù)量的零并'0x'自己添加到它:
data = [0,1]
as_hex = [ "0x" + format(e,"x").zfill(2) for e in data]
print(as_hex)
輸出:
['0x00', '0x01']

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
由于你沒有描述你想要的結(jié)果是什么,我只能猜測(cè):
你想把一些數(shù)字打包成一個(gè)字符串嗎?
那么無論您使用哪種格式,只要您使用正確的格式字符串,兩者都應(yīng)該可以工作:
a = [1, 2]
b = [0x01, 0x02]
struct.pack(">hh", *a)
# > '\x00\x01\x00\x02'
struct.pack(">hh", *b)
# > '\x00\x01\x00\x02'
這是因?yàn)閍和b是相等的:它并不重要,如果你寫的1和2或者如果你喜歡0x01RESP。0x02. 請(qǐng)注意,顯示的字符串只是包含值分別為 0、1 和 2 的特殊字符的字符串的表示。
你想以十六進(jìn)制表示輸出你的數(shù)字嗎?
在這種情況下,請(qǐng)參閱其他答案。
添加回答
舉報(bào)