回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有点困在这里,好像错过了什么。我需要计算一个图例的每一类相对于所列元素的词汇表的百分比。以下是我的内容:</p>
<pre><code>Legend = {u'Conifer': 1.0, u'Hardwood': 4.0, u'Field': 5.0, u'Urban': 6.0, u'Water': 8.0}
PolyItems = {u'5423': [1.0, 2.0, 1.0, 4.0],
u'425': [6.0, 6.0, 6.0, 6.0, 8.0, 1.0, 6.0, 1.0, 4.0, 4.0, 4.0],
u'9756': [1.0, 1.0, 4.0],
u'6418': [4.0, 8.0, 1.0, 1.0]}
</code></pre>
<p>现在,我试图在Legend变量上做一个循环,并使用lambda函数来计算每个类的百分比,但是我总是得到每个项的<code>0.0</code>。你知道吗</p>
<pre><code>nb = lambda v, c: float(len([x for x in v if v==c]))
nbtot = lambda v: float(len(v))
for name, cla in Legend.iteritems():
result = {id: nb(vals, cla)/nbtot(vals) * 100
for id, vals in PolyItems.items() if len(id) > 0}
</code></pre>
<p>我可以使用lambda函数吗?有没有更好的方法来实现这一点?你知道吗</p>