字符串数组数据需要被剥离美元符号并变成浮点数

时间:2016-07-14 14:46:52

标签: python arrays string

我有以下数据:

['$15.50']
['$10.00']
['$15.50']
['$15.50']
['$22.28']
['$50']
['$15.50']
['$10.00']

我想摆脱美元符号并将字符串转换为浮点数,以便我可以将这些数字用于多次计算。我尝试过以下方法:

array[0] = float(array.text.strip('$')) 

这给了我一个属性错误,因为显然是一个'列表'对象没有'文本'属性。我的错。对于' list'是否有类似的方法?被剥离的物体?任何其他建议也会受到欢迎。提前谢谢。

3 个答案:

答案 0 :(得分:3)

尝试使用list comprehension

array = [float(x.strip("$")) for x in array]

答案 1 :(得分:0)

使用正则表达式:

<Rectangle Stroke="LightBlue" StrokeThickness="5">
    <Rectangle.Fill>
        <LinearGradientBrush StartPoint="8,0" EndPoint="18,8" 
                     MappingMode="Absolute" SpreadMethod="Repeat">
            <GradientStop Color="LightBlue" Offset="0.15"/>
            <GradientStop Color="White" Offset="0.05"/>
        </LinearGradientBrush>
    </Rectangle.Fill>
</Rectangle>

如果'$'不在字符串的末尾或开头

答案 2 :(得分:0)

这应该做:

[float(s.replace(',', '.').replace('$', '')) for s in array]

我冒昧地改变您的数据,以便考虑更广泛的测试用例:

array = ['$15.50',
         '$ 10.00',
         '  $15.50  ',
         '$15,50',
         '$22,28 ',
         '  10,00  $  ']

这就是你得到的:

In [8]: [float(s.replace(',', '.').replace('$', '')) for s in array]
Out[8]: [15.5, 10.0, 15.5, 15.5, 22.28, 10.0]