4

解析: 化学種を表す文字列を受け取り、要素と対応する添え字からなるタプルのリストを返す関数を書きます。添字がない場合、添字は 1 にする必要があります。例: 次の入力で関数を呼び出します。

H2SO4

次の出力を返す必要があります。

[('H', 2), ('S', 1), ('O', 4)]

だから私はプロジェクトをやろうとしていますが、それを開始する方法がわかりません

誰でもこれを開始する方法を教えてもらえますか?

4

1 に答える 1

10

次の方法で 90% を達成できます。

In [6]: re.findall(r'([A-Z][a-z]*)(\d*)', 'H2SO4')
Out[6]: [('H', '2'), ('S', ''), ('O', '4')]

残りの 10% は、読者の演習として残されています (結局、これは宿題です)。

ヒント: 単純なリスト内包表記で残りの作業を行うことができます。

于 2012-12-17T22:33:53.843 に答える