python - 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"'
有谁知道如何进行?谢谢
解决方案
你只需要做一点修改:
re.sub('(?<=AMOUNT\=")\d+', lambda match: str(int(match.group()) * 2), my_string)
传入lambda
的re.Match
对象是您需要的具有编号的对象。现在您只需要使用.group()
方法提取数字,转换为int * 2
并转换回str
.
推荐阅读
- spring - 如何在@SpringBootApplication 中允许编码斜杠
- c# - 如何在 XAML 中使用给定的静态资源
- c# - .AsNoTracking() 不适用于单元测试
- blazor - Blazor 服务器端——空闲后如何重定向用户登录
- python - 我正在尝试向我的游戏窗口添加背景颜色,但它不起作用,并且不断弹出属性错误。有什么建议吗?
- java - 导入库的类被“锁定”,我该怎么做才能导入它们?
- apache-spark - Spark-shell 无法访问 Hive MetaStore
- javascript - 在 Heroku 上成功构建,但在尝试访问它时会导致无休止的加载
- python-3.x - 为 netCDF4 文件中的每个点创建 txt 文件的 for 循环
- owl-carousel-2 - 为什么我不能在 owl carousel 上显示点,即使在 javascript 文件中添加了点:true?