如何在Python中将字符串变量转换为十六进制

如何在Python中将字符串变量转换为十六进制,python,python-3.x,hex,mac-address,Python,Python 3.x,Hex,Mac Address,我有一个字符串“aa2a.aaa2.aaaa”。我想将其作为字符串参数传递,但应该使用一些十六进制转换方法将其转换为mac地址。如何将字符串转换为十六进制 hex(mac) 上述方法没有帮助,因为它只会将字符串转换为十六进制值。您不能对字符串应用hex,因为它包含点字符,您可以将其按点拆分,并将其转换为以16为基数的整数,然后转换为十六进制: >>> s="aa2a.aaa2.aaaa" >>> '.'.join(map(lambda x:hex(int(x

我有一个字符串
“aa2a.aaa2.aaaa”
。我想将其作为字符串参数传递,但应该使用一些十六进制转换方法将其转换为mac地址。如何将字符串转换为十六进制

hex(mac)

上述方法没有帮助,因为它只会将字符串转换为十六进制值。

您不能对字符串应用
hex
,因为它包含点字符,您可以将其按点拆分,并将其转换为以16为基数的整数,然后转换为十六进制:

>>> s="aa2a.aaa2.aaaa"
>>> '.'.join(map(lambda x:hex(int(x,16)),s.split('.')))
'0xaa2a.0xaaa2.0xaaaa'
或者,如果您确定所有文字都是有效的base 16,则只需执行以下操作:

>>> s="aa2a.aaa2.aaaa"
>>> '.'.join(map(lambda i:'0x{}'.format(i),s.split('.')))
'0xaa2a.0xaaa2.0xaaaa'

如果不是这样,第一个解决方案将引发一个
ValueError
,您可以在异常情况下处理它。

您希望输出什么?为什么中间有点?是否希望获得
'aa:2a:aa:a2:aa:aa'
?e、 例如,
s=“aa2a.aaa2.aaaa”。替换(“.”,”
mac=“:”。为范围(0,len,2)内的i加入(s[i:i+2])