我有一个脚本,读取一个文本文件,拉出小数作为字符串,并将它们放入一个列表。

所以我列出了这个清单:

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)

但这似乎对我不起作用。


当前回答

这将是另一个方法(不使用任何循环!):

import numpy as np
list(np.float_(list_name))

其他回答

这将是另一个方法(不使用任何循环!):

import numpy as np
list(np.float_(list_name))
newlist = list(map(float, mylist))

我必须首先从float字符串列表中提取数字:

   df4['sscore'] = df4['simscore'].str.findall('\d+\.\d+')

然后每个转换为浮点数:

   ad=[]
   for z in range(len(df4)):
      ad.append([float(i) for i in df4['sscore'][z]])

最后将所有浮点数赋值给一个dataframe为float64:

   df4['fscore'] = np.array(ad,dtype=float)
for i in range(len(list)): list[i]=float(list[i])

Map (float, mylist)可以做到。

(在Python 3中,map停止返回一个列表对象,所以如果你想要一个新的列表,而不仅仅是要迭代的东西,你要么需要list(map(float, mylist) -要么使用SilentGhost的答案,这可以说是更Python化的。)