我在python 3.5.2中创建一个函数来读取化学结构(例如CaBr2),然后给出一个列表,其中包含元素及其系数的名称。
关于我如何做的一般概述是我有一个for循环,它跳过第一个字母。然后当它到达以下之一时,它将附加前一个元素:大写字母/数字/结束。我用我的迭代索引做了这个,然后根据具体情况得到索引(迭代)-1或-2的条目。对于给定的示例,它将跳过C,读取但不执行任何操作,到达B并将我的名称列表附加到Ca的转换,并将1附加到我的系数列表中。
这对于具有唯一条目的结构非常有效,但是对于像CaCl2这样的东西,第二个C处的迭代索引不是2,而是因为索引没有区分这两者。如何在我的函数中使变量等于前一个索引的值而不会遇到此问题?记住输入可以是任意长度,大写不能改变,并且可以有任意数量的重复值