簡體   English   中英

分析化學方程式,在Python中將括號外的子索引相乘

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM