在字典中删除字符串值并将其转换为浮点数。值包含由空格分隔的数字

时间:2016-10-09 14:57:15

标签: python string dictionary

我有一个包含以下数据的字典设置:

image of dictionary with values

其值是字符串的列表:

['2 1 0\n', '3 0 1\n', '4 0 3\n' .... ]   
['-3.85995e-17  1.26224e+00  2.63053e-01\n']

有没有办法可以将值转换为浮点数列表,而不必使用太多循环?

2 个答案:

答案 0 :(得分:0)

您可能必须找到一个处理此类数据的库来为您执行此操作,我不知道将字符串转换为浮点列表的任何本机python方法。 如果你想节省空间,最简单的方法就是编写自己的函数来获取你的一个值并返回一个浮点列表。

例如:

def string_to_float_list(string):
    split = string.strip().split(" ")
    floats = []    
    for s in split:
        if len(s) == 0:
            continue
        floats.append(float(s.strip()))
    return floats

接受输入:

string = '-3.85995e-17  1.26224e+00  2.63053e-01\n'

提供输出:

[-3.85995e-17, 1.26224, 0.263053]

答案 1 :(得分:0)

谢谢Xorgon!

我也尝试使用列表推导如下:

Connectivity = ['2 1 0\n', '3 0 1\n', '4 0 3\n']

aaa = [k.strip() for k in Connectivity]   
bbb =  [k.split() for k in aaa]
ccc = [[float(j) for j in i] for i in bbb] 

但有更快的方法吗?原因是变量连接将包含大约500万个项目

相关问题