回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一张单子</p>
<pre><code>defaultdict(list,
{37.0: ['C22H27O7',
'C21H23O8',
'C25H35O7',
'C24H31O8',
'C23H27O9',
'C22H23O10',
'C21H19O11',
'C20H15O12',
'C19H11O13'],
111.0: ['C22H27O7',
'C19H15O10',
'C25H35O7',
'C22H23O10',
'C24H31O8',
'C21H19O11',
'C23H27O9',
'C20H15O12',
'C19H11O13'],
74.0: ['C21H23O8',
'C19H15O10',
'C25H35O7',
'C23H27O9',
'C24H31O8',
'C22H23O10',
'C21H19O11',
'C20H15O12',
'C19H11O13'],
148.0: ['C25H35O7',
'C21H19O11',
'C24H31O8',
'C20H15O12',
'C23H27O9',
'C19H11O13'],
185.0: ['C25H35O7', 'C20H15O12', 'C24H31O8', 'C19H11O13'],
222.0: ['C25H35O7', 'C19H11O13']})
</code></pre>
<p>我有一个calculateMass函数</p>
<pre><code>def calculateMass(formula):
if(formula[0:1] == "C"):
# print(add[k]1:3)
C = int(formula[1:3])
C = C*12000
print(C)
if(formula[3:4] == "H"):
H = (int(formula[4:6]))
H = H*1008
if(formula[6:7] == "O"):
O=(int(formula[7:9]))
O=O*15995
total = O + C + H
print(total)
</code></pre>
<p>我的目标是根据质量削减我的列表,例如,我期望的输出应该是:</p>
<blockquote>
<p>[1] 37 --> C22H27O7--> C21H23O8 (Cut From here because next
element's mass [C25H35O7] > [C21H23O8])</p>
<p>[2] 37 --> C25H35O7 --> C24H31O8 --> C23H27O9 --> C22H23O10 -->
C21H19O11 --> C20H15O12 --> C19H11O13 (Since masses are decreasing we
do not need to cut.)</p>
</blockquote>
<p>并迭代其他键值</p>
<blockquote>
<p>[1] 111 --> ......</p>
</blockquote>
<p>如何在Python中执行此操作?你知道吗</p>