[英]Analyze a chemical equation, multiply sub-indexes outside parenthesis in Python
所以我是Python的新手。 現在,我正在制作一個化學方程式平衡器,但由於現在要執行的操作是卡在括號中,且子索引位於外部(例如:(NaCl) 2 ),我想將其擴展為以下形式:Na 2 Cl 2 (並且也除去括號)。 現在,我設法用下面的代碼擺脫了括號:
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)
注意,您可以添加打印語句以更好地理解每個步驟...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.