我从模块接收一个表示long int
的字符串>>> str = hex(5L)
>>> str
'0x5L'
我现在想要的是将字符串str转换回数字(整数)
int(str,16)因L而无效。
有没有办法在不剥离字符串中的最后一个L的情况下执行此操作?因为字符串也可能包含没有L?
的十六进制答案 0 :(得分:5)
使用str.rstrip
;它适用于两种情况:
>>> int('0x5L'.rstrip('L'),16)
5
>>> int('0x5'.rstrip('L'),16)
5
或者以这种方式生成字符串:
>>> s = '{:#x}'.format(5L) # remove '#' if you don' want '0x'
>>> s
'0x5'
>>> int(s, 16)
5
答案 1 :(得分:2)
你甚至可以使用:
>>> str = hex(5L)
>>> long(str,16)
5L
>>> int(long(str,16))
5
>>>