我想在一个文件中找到“money”并将字符串更改为float,例如,我使用正则表达式查找“$33326”,并希望更改为[33326.0,“$”](即,删除逗号并更改为float)。我写了下面的函数,但它给了我错误
import locale,re
def currencyToFloat(x):
empty = []
reNum = re.compile(r"""(?P<prefix>\$)?(?P<number>[.,0-9]+)(?P<suffix>\s+[a-zA-Z]+)?""")
new = reNum.findall(x)
for i in new:
i[1].replace(",", "")
float(i[1])
empty.append(i[1])
empty.append(i[0])
return empty
print currencyToFloat("$33,326")
你能帮我调试代码吗?谢谢
当你这么做的时候
你没有修改任何东西。您应该将结果存储在某个变量中,例如:
^{pr2}$但是要想转换成
float
,你的数字必须有一个点,而不是逗号,所以你可以这样做:然后将其转换为float并附加到列表中:
注意:
重要的是,当你在列表中循环时,比如
i
是每个元素的副本,因此如果修改它,列表new
中不会有任何更改。要修改列表,可以迭代索引:您可以使用str.translate()
输出
[33326.0,'$']
相关问题 更多 >
编程相关推荐