【发布时间】:2014-03-18 16:03:34
【问题描述】:
我是 Python 和编程新手。
我的教科书说我必须做以下问题集:
创建第二个购买摘要,按股票代码累计总投资。在里面 以上样本数据,有两块CAT。
这些可以很容易地通过创建一个字典来组合,其中 键是股票代码,值是购买的块列表。该程序通过一次 通过数据创建字典。然后通过 dict 可以创建一个报告,显示每个 股票代码和所有股票。
除了硬编码之外,我想不出一种方法来添加“CAT”股票的两个条目。
## 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
现在,输出是:
4800
11200
2400
这不好,因为它没有计算两只 CAT 股票。现在它只计算一个。代码应该足够灵活,我可以添加更多的 CAT 股票。
【问题讨论】:
标签: python python-2.7 dictionary iteration