擅长:python、mysql、java
<p>代码的问题在于,您没有迭代purchaes,而只是从每个ticker值中获取第一个元素。也就是说,byTicker看起来像:</p>
<pre class="lang-py prettyprint-override"><code>byTicker: {
"GM": [("GM",100,"10-sep-2001",48)],
"CAT": [("CAT",100,"01-apr-1999",24), ("CAT", 200,"02-may-1999",53)],
"FB": [("FB",200,"01-jul-2013",56)]
}
</code></pre>
<p>所以当你迭代这些值时,你实际上得到了三个列表。但当您处理这些列表时,实际上您只访问其中的第一个列表:</p>
^{pr2}$
<p>对应于“CAT”的值,i[0]为(“CAT”,100,“01-apr-1999”,24)。你也应该调查我!考虑迭代不同的购买:</p>
<pre class="lang-py prettyprint-override"><code>for company, purchases in byTicker.items():
investment = 0
for purchase in purchases:
investment += purchase[1] * purchase[3]
print(company, investment)
</code></pre>