我有以下数据:
['$15.50']
['$10.00']
['$15.50']
['$15.50']
['$22.28']
['$50']
['$15.50']
['$10.00']
我想摆脱美元符号并将字符串转换为浮点数,以便我可以将这些数字用于多次计算。我尝试过以下方法:
array[0] = float(array.text.strip('$'))
这给了我一个属性错误,因为显然是一个'列表'对象没有'文本'属性。我的错。对于' list'是否有类似的方法?被剥离的物体?任何其他建议也会受到欢迎。提前谢谢。
答案 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]