我有以下列表:
list = [u'0', u'FF', u'7', u'0', u'FF', u'FFF', u'FFF']
我需要将元素用作整数或浮点数但是当我尝试传送时我得到以下错误:
>>> float(list[1])
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
ValueError: could not convert string to float: FF
有没有办法解决这个问题?
答案 0 :(得分:3)
您无法直接将该十六进制值转换为float
,而是可以使用int()
函数指定正确的基数转换为int:
>>> l = [u'0', u'FF', u'7', u'0', u'FF', u'FFF', u'FFF']
>>> [int(i,16) for i in l]
[0, 255, 7, 0, 255, 4095, 4095]
或在float
值上使用int
:
>>> [float(int(i,16)) for i in l]
[0.0, 255.0, 7.0, 0.0, 255.0, 4095.0, 4095.0]