亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

十六進制字符串到十六進制文字的列表

十六進制字符串到十六進制文字的列表

MMTTMM 2023-08-08 15:31:30
我有一個十六進制字符串列表:lst = ['0x01', '0xfe', '0x02', '0xff']我想將此列表轉換為十六進制文字。輸出應該是:d = '\x01\xfe\x02\xff'
查看完整描述

2 回答

?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

使用列表理解將字符串數據轉換為整數,然后轉換為字節:


>>> lst = ['0x01','0xfe','0x02','0xff']

>>> d = bytes([int(x,0) for x in lst])

>>> d

b'\x01\xfe\x02\xff'

我假設您確實想要一個字節字符串,而不是 Unicode 字符串,因為它看起來像字節數據。


要創建顯示字符串,請格式化文字反斜杠并使用十六進制值設置 x。您可以通過切片字符串來獲取十六進制值0x,但為了格式一致性(例如兩位數,小寫),您仍然可以轉換為整數,然后使用格式字符串:


>>> lst = ['0x43','0xfe','0x02','0xff']

>>> bytes([int(x,0) for x in lst]) # actual byte string shows printable ASCII

b'C\xfe\x02\xff'

>>> d = ''.join([f'\\x{int(v,0):02x}' for v in lst])  # display string of hex escape codes

>>> d

'\\x43\\xfe\\x02\\xff'

>>> print(d)

\x43\xfe\x02\xff


查看完整回答
反對 回復 2023-08-08
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

我認為你可以做這樣的事情。

print (''.join(['\\'+x for x in lst]))

其輸出將是:

\0x01\0xfe\0x02\0xff

如果你想刪除前導 0,那么你可以這樣做:

print((''.join(lst)).replace('0x',r'\x'))

它會給你:

\x01\xfe\x02\xff


查看完整回答
反對 回復 2023-08-08
  • 2 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號