如何将列表中的所有项转换为浮点数?
我有一个脚本,它可以读取一个文本文件,从中提取出小数数字,并把这些数字以字符串的形式放到一个列表里。
所以我现在有了这个列表:
my_list = ['0.49', '0.54', '0.54', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54']
我该怎么把列表里的每个值从字符串转换成浮点数呢?
我试过这个:
for item in my_list:
float(item)
但是这对我来说似乎不太管用。
14 个回答
37
这将是另一种方法(不使用任何循环!):
import numpy as np
list(np.float_(list_name))
164
map(float, mylist)
这个写法可以解决问题。
(在Python 3中,map不再返回一个列表对象,所以如果你想要一个新的列表,而不仅仅是一个可以遍历的东西,你需要用 list(map(float, mylist))
- 或者使用SilentGhost的答案,这种写法更符合Python的风格。)
623
[float(i) for i in lst]
具体来说,它会创建一个新的列表,里面装的是浮点数值。跟 map
的方法不一样,这种方式在 Python 3 中是可以正常工作的。