python - 如何在列表末尾的特定字符之前将字符插入列表,在最后一个字符之后插入相同的字符?
问题描述
我有一个简单计算器的生成列表。例如,它看起来像这样:
l = [1,5, +, 2, 7, *, 3, 5, - , 9, 5, +, 4,5,6]
在输入行中,它看起来像这样“15 + 27 * 35 - 95 + 456”。
我需要做的是实现一个函数,使最后一个条目为负数并在括号中(-456)(不是最后一个数字6,而是列表末尾非数字字符之后的所有数字)
所以我有一个清单
list = [1,5, +, 2, 7, *, 3, 5, -, 9, 5, +, 4, 5, 6]
我需要在末尾的“+”之后插入括号,然后是“-”,然后是 4、5、6,然后再插入括号。所以我的新列表应该是这样的:
list2 = [1, 5, +, 2, 7, *, 3, 5, - , 9, 5, +, (,-,4,5,6,)]
基本上我需要从末尾找到非数字字符,插入两个字符“(”,“-”,然后在最后一个数字后添加“)”。
我怎样才能做到这一点?
然后我将应用这个函数 ''.join(map(str,list)) 它看起来像这样 "15 + 27 * 35 - 95 + (-456)"
我尝试使用正则表达式,但似乎我失败了:-(
谢谢
解决方案
使用正则表达式:
formula = "15 + 27 * 35 - 95 + 456"
new_formula = re.sub(r"(\d+)$", r"(-\1)", formula)
推荐阅读
- apache-flink - 为什么 Flink (RESTful) 作业的资源在启动集群时会受到工作目录的影响?
- content-management-system - 什么是 Prismic 中“切片”的 Contentful 等价物?
- hadoop - 工作节点指标未显示在浏览器(普罗米修斯)中?
- python-3.x - 向量化 scikit-learn/Python3 中的句子列表列表
- python - 使用 pandas/python 检查字典中是否不存在数据框的值
- flutter - 如何在flutter项目中使用http拦截器?
- powershell - 通过所有 AD 计算机对象使用 Powershell Get-ItemProperty
- python - 模型没有预测正确的结果 keras tensorflow python
- assembly - 编程语言可以有自己的调用约定吗?
- locking - 如何实现多生产者多消费者单缓冲区模型?