[优化]从带有分隔符的列表中追加数字

时间:2015-09-24 14:34:43

标签: python list optimization while-loop

所以我正在编写一段代码,我正在尝试找出最有效,最快速的方法将列表拆分成我需要的数字。

以下是我正在使用的代码:

eq=[' ', '1', '.', '3', '3', '5', '9', '2', '0', 'e', '0', '6', ' ', '4', '.', '0', '2', '0', '7', '4', '9', 'e', '0', '1']
coeff=[]
i=0
while i < len(eq)-1:
    temp=""
    if eq[i]==' ':
        for x in range(i+1,len(eq)):
            if eq[x]== ' ':
                break
            else:
                temp+=eq[x]
        coeff.append(float(temp))
        i=x
    print coeff

这确实给了我想要的结果,[1335920.0, 40.20749],但我想知道是否有更好的方法来做到这一点。

请注意,这些数字来自R,因此,我无法保证它们的格式始终完全相同,因此切换列表不是一种选择。

1 个答案:

答案 0 :(得分:1)

In [1]: eq = [' ', '1', '.', '3', '3', '5', '9', '2', '0', 'e', '0', '6', ' ', '4', '.', '0', '2', '0', '7', '4', '9', 'e', '0', '1']

In [2]: map(float, ''.join(eq).strip().split(' '))
Out[2]: [1335920.0, 40.20749]

说明:

''.join(eq)加入列表中的字符串

strip()删除前导空格和尾随空格

split(' ')将字符串拆分为单个空格

mapfloat应用于列表

中的每个字符串