我有一个脚本,读取一个文本文件,拉出小数作为字符串,并将它们放入一个列表。
所以我列出了这个清单:
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)
但这似乎对我不起作用。
我有一个脚本,读取一个文本文件,拉出小数作为字符串,并将它们放入一个列表。
所以我列出了这个清单:
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)
但这似乎对我不起作用。
当前回答
你可以使用map()函数将列表直接转换为浮点数:
float_list = map(float, list)
其他回答
这将是另一个方法(不使用任何循环!):
import numpy as np
list(np.float_(list_name))
for i in range(len(list)): list[i]=float(list[i])
我已经解决了这个问题在我的程序使用:
number_input = float("{:.1f}".format(float(input())))
list.append(number_input)
可以使用numpy将列表直接转换为浮动数组或矩阵。
import numpy as np
list_ex = [1, 0] # This a list
list_int = np.array(list_ex) # This is a numpy integer array
如果要将整数数组转换为浮动数组,则添加0。它
list_float = np.array(list_ex) + 0. # This is a numpy floating array
我必须首先从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)