如何将列表中的所有项转换为浮点数?

355 投票
14 回答
1123233 浏览
提问于 2025-04-15 15:19

我有一个脚本,它可以读取一个文本文件,从中提取出小数数字,并把这些数字以字符串的形式放到一个列表里。

所以我现在有了这个列表:

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 中是可以正常工作的。

撰写回答