gpt4 book ai didi

python - 分析化学方程式,在Python中将括号外的子索引相乘

转载 作者:行者123 更新时间:2023-12-01 04:45:18 25 4
gpt4 key购买 nike

所以我对 Python 有点陌生。现在我正在制作一个化学方程式平衡器,但我陷入了困境,因为我现在想做的是,如果您在括号中收到一个化合物,外面有一个子索引(如下所示:(NaCl)2),我想将其扩展为这种形式:Na2Cl2(并且还去掉括号)。现在我已经成功地用这段代码去掉了括号:

import string
import re

linealEquation = ""

def linealEq(equation):
#missing code
allow = string.letters + string.digits + '+' + '-' + '>'
linealEquation = re.sub('[^%s]' % allow, '', equation)
print linealEquation

linealEq("(CrNa)2 -> Cr+Na")

但是我如何跟踪字符串并将括号中的索引相乘?

我知道如何迭代字符串,但我想不出如何具体乘以子索引。

感谢您的帮助。

最佳答案

可能不是最短的解决方案,并且不适用于所有情况,但适用于您的示例:

left,  right = equation.split('->')
exp = left.strip()[-1]
inside = left[1:-3]
c2 = re.findall('[A-Z][^A-Z]*', inside)
l = [s + exp for s in c2]
res =''.join(l)

注意您可以添加打印语句以更好地理解每个步骤...

关于python - 分析化学方程式,在Python中将括号外的子索引相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29581097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com