Python: 如何从文本文件中读取一系列字符串作为浮点数?
Python: How can read as float numbers a series of strings from a text file?
我试图从文本文件中逐行读取一系列如下字符串:
11,52.15384615384615,52.84615384615385,14.0,45.15384615384615,39.76923076923077
10,27.09090909090909,54.81818181818182,64.36363636363636,65.54545454545455,21.90909090909091
(第一个数字是一个整数,用作索引),我想得到的是浮点数,例如
11, 52.15, 52.85, 14.00, 45.15, 39.77
10, 27.09, 54.82, 64.36, 65,54, 21.91
如何将这些字符串转换为数字列表?
从你的例子来看,我认为这就是你要找的。
下面的字符串 s 被转换为浮点数然后四舍五入到 2 个小数点
>>>s='51.843256'
>>>round(float(s), 2)
51.84
听起来您正试图从文本文件中获取一组浮点数。您可以使用字典将您提到的索引映射到浮动列表。然后只需打开文件,逐行读取,使用 split(',') 将字符串拆分为字符串列表。然后在索引时获取第一个整数,使用列表切片查看其余字符串和 convert/round 并将它们添加到一个新列表中,稍后您可以将其分配给索引。
阅读代码可能比解释它更容易。
my_float_dict = dict()
with open('my_float_strings.txt','r') as f:
for line in f:
string_list = line.split(',')
index = int(string_list[0])
line_float_list = []
for field in string_list[1:]:
line_float_list.append(round(float(field),2))
my_float_dict[index] = line_float_list
print my_float_dict
我试图从文本文件中逐行读取一系列如下字符串:
11,52.15384615384615,52.84615384615385,14.0,45.15384615384615,39.76923076923077
10,27.09090909090909,54.81818181818182,64.36363636363636,65.54545454545455,21.90909090909091
(第一个数字是一个整数,用作索引),我想得到的是浮点数,例如
11, 52.15, 52.85, 14.00, 45.15, 39.77
10, 27.09, 54.82, 64.36, 65,54, 21.91
如何将这些字符串转换为数字列表?
从你的例子来看,我认为这就是你要找的。 下面的字符串 s 被转换为浮点数然后四舍五入到 2 个小数点
>>>s='51.843256'
>>>round(float(s), 2)
51.84
听起来您正试图从文本文件中获取一组浮点数。您可以使用字典将您提到的索引映射到浮动列表。然后只需打开文件,逐行读取,使用 split(',') 将字符串拆分为字符串列表。然后在索引时获取第一个整数,使用列表切片查看其余字符串和 convert/round 并将它们添加到一个新列表中,稍后您可以将其分配给索引。
阅读代码可能比解释它更容易。
my_float_dict = dict()
with open('my_float_strings.txt','r') as f:
for line in f:
string_list = line.split(',')
index = int(string_list[0])
line_float_list = []
for field in string_list[1:]:
line_float_list.append(round(float(field),2))
my_float_dict[index] = line_float_list
print my_float_dict