首页 > 解决方案 > Python:将字符串中的数字乘以常数

问题描述

我正在尝试将字符串中的一系列数字乘以常数。我有类似的东西:

my_string = 'AMOUNT="38000" AMOUNT="43000" AMOUNT="56399"'

我可以很容易地做到这一点:

my_new_string = re.sub('(?<=AMOUNT\=")\d+', lambda _:str(38000 *2), my_string)

这行得通,但这不是我需要的。

我需要的输出如下:

my_new_string = 'AMOUNT="76000" AMOUNT="86000" AMOUNT="112798"'

有谁知道如何进行?谢谢

标签: pythonstring

解决方案


你只需要做一点修改:

re.sub('(?<=AMOUNT\=")\d+', lambda match: str(int(match.group()) * 2), my_string)

传入lambdare.Match对象是您需要的具有编号的对象。现在您只需要使用.group()方法提取数字,转换为int * 2并转换回str.


推荐阅读