回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我是Python和编程新手。在</p>
<p>我的课本上说我必须做以下习题:</p>
<blockquote>
<p>Create a second purchase summary that which accumulates total investment by ticker symbol. In the
above sample data, there are two blocks of CAT.</p>
<p>These can easily be combined by creating a dict where
the key is the ticker and the value is the list of blocks purchased. The program makes one pass
through the data to create the dict. A pass through the dict can then create a report showing each
ticker symbol and all blocks of stock.</p>
</blockquote>
<p>除了硬编码之外,我想不出一种方法来添加“猫”股票的两个条目。在</p>
<pre><code>## Stock Reports
stockDict = {"GM":"General Motors", "CAT":"Caterpillar", "EK":"Eastman Kodak",
"FB":"Facebook"}
# symbol,prices,dates,shares
purchases = [("GM",100,"10-sep-2001",48), ("CAT",100,"01-apr-1999",24),
("FB",200,"01-jul-2013",56), ("CAT", 200,"02-may-1999",53)]
# purchase history:
print "Company", "\t\tPrice", "\tDate\n"
for stock in purchases:
price = stock[1] * stock[3]
name = stockDict[stock[0]]
print name, "\t\t", price, "\t", stock[2]
print "\n"
# THIS IS THE PROBLEM SET I NEED HELP WITH:
# accumulate total investment by ticker symbol
byTicker = {}
# create dict
for stock in purchases:
ticker = stock[0]
block = [stock]
if ticker in byTicker:
byTicker[ticker] += block
else:
byTicker[ticker] = block
for i in byTicker.values():
shares = i[0][3]
price = i[0][1]
investment = shares * price
print investment
</code></pre>
<p>现在,输出是:</p>
^{pr2}$
<p>这不好,因为它没有计算这两只猫的存量。现在它只计算一个。代码应该足够灵活,我可以添加更多的猫股票。在</p>