Pythonで化学式を構成元素に分解する

Pythonを用いて、化学式(組成式)を構成元素とその数に分割する方法です。
例えば、「C16H10ClN3」というように記載された化学式を、{C:16,H:10,Cl:1,N:3}という辞書データに分解することをゴールとしています。

関数の作成

化学式を入力して、構成要素を出力する関数を作成してみます。

まず正規表現を用いて、大文字で始まっている部分にすべて分解します。
その後で、その部分を更に英字部分と数字部分に分解しています。数字部分のないものは1としています。

実行結果

実行してみましょう。

もう1つやってみます。

正しく分割できているようです。
括弧を含む表記や、イオン、電子式には対応しておりませんのでご注意ください。