1
我有一個字符串"aa2a.aaa2.aaaa"
。我想通過這個作爲字符串參數,但這應該被轉換爲使用一些十六進制轉換方法的MAC地址。我怎樣才能將字符串轉換爲十六進制?如何在Python中將字符串var轉換爲十六進制
hex(mac)
以上方法不會幫助,因爲它只是轉換串入其十六進制值。
我有一個字符串"aa2a.aaa2.aaaa"
。我想通過這個作爲字符串參數,但這應該被轉換爲使用一些十六進制轉換方法的MAC地址。我怎樣才能將字符串轉換爲十六進制?如何在Python中將字符串var轉換爲十六進制
hex(mac)
以上方法不會幫助,因爲它只是轉換串入其十六進制值。
你不能在你的字符串應用hex
,因爲它包含點字符,你可以用點分割它,並將其轉換爲與底座16的整數,那麼轉換爲十六進制:
>>> s="aa2a.aaa2.aaaa"
>>> '.'.join(map(lambda x:hex(int(x,16)),s.split('.')))
'0xaa2a.0xaaa2.0xaaaa'
或者如果你是確保所有文字都是有效的基本16,你可以簡單地做:
>>> s="aa2a.aaa2.aaaa"
>>> '.'.join(map(lambda i:'0x{}'.format(i),s.split('.')))
'0xaa2a.0xaaa2.0xaaaa'
如果不是那麼第一個解決方案將引發ValueError
,你可以用一個異常處理。
你期待什麼作爲輸出? –
爲什麼介於兩者之間? –
你想得到''aa:2a:aa:a2:aa:aa''嗎?例如's =「aa2a.aaa2.aaaa」.replace('。','');''mac =「:」。join(s [i:i + 2] for range in(0,len s),2))' – jfs