【问题标题】:replace dot and comma with each other from a number str in python从python中的数字str相互替换点和逗号
【发布时间】:2021-09-03 00:54:54
【问题描述】:

我正在尝试将点和逗号相互替换,目前我正在使用下面的代码来获得结果,但想知道是否有更好的方法来实现这个结果

example   
amt = '1.233.456.778,00'
data  = float(amt.replace('.','@').replace(',','.').replace('@',','))

#output  1,233,456,778.00

【问题讨论】:

标签: python string replace


【解决方案1】:

如果 Python 中存在这样的 API,您可能希望依靠切换号码的区域设置。如果您必须手动进行替换,请使用 re.sub 和 lambda 回调:

amt = '1.233.456.778,00'
output = re.sub(r'[.,]', lambda x: '.' if x.group() == ',' else ',', amt)
print(output)  # 1,233,456,778.00

请注意,这种方法可以解决您当前方法的问题,即如果字符串中恰好有 @,那么您的逻辑将失败。

【讨论】:

  • 它可以工作,但是当我尝试将它的输出转换为浮动时,它会给出错误
  • @Kartikeya 浮点数(或 Python 中的任何数字文字)没有“格式”。看起来您正在使用某些语言环境,其中点是千位分隔符,逗号是小数分隔符。没有错;只需保持原始文本浮动,并在您想在另一个语言环境中以某种方式查看它时使用我的代码。
猜你喜欢
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
  • 2022-11-19
  • 2013-06-23
相关资源
最近更新 更多