我的字典的結構爲這樣:迭代嵌套的字典在Python
stockData = {
'AAPL': {
'beta': 1.01833975315094,
'company_name': 'Apple',
'dividend': 1.9341673320912078,
'total':300},
'GOOG': {
'beta': 1.01833975315094,
'company_name': 'Apple',
'dividend': 1.9341673320912078,
'total':300}
}
,這裏是區,其中i值分配:
for row in range(2, sheet.max_row + 1):
# Each row in the spreadsheet has data for one census tract.
company_name = sheet['A' + str(row)].value
ticker = sheet['B' + str(row)].value
sector = sheet['C' + str(row)].value
shares = sheet['D' + str(row)].value
price = sheet['E' + str(row)].value
total = sheet['F' + str(row)].value
beta = sheet['G' + str(row)].value
dividend = sheet['H' + str(row)].value
number_stocks+=1
# Make sure the key for this ticker exists.
stockData.setdefault(ticker,{})
stockData[ticker]['company_name'] = company_name
stockData[ticker]['sector'] = sector
stockData[ticker]['shares'] = shares
stockData[ticker]['price'] = price
stockData[ticker]['total'] = total
stockData[ticker]['dividend'] = dividend
stockData[ticker]['beta'] = beta
我有一個問題在哪裏我迭代使用for循環字典添加一個新的價值'百分比'這是'總'除以所有總計的所有股票的總和。
def get_portfolio_value(stocks,item):
portValue = 0
percentage = 0
for k, v in stocks.items():
portValue = portValue + v.get(item,0)
stockData[ticker]['percentage'] = stockData[ticker]['total']/portValue
print(portValue)
get_portfolio_value(stockData,'total')
的問題是,get_portfolio_value功能讓我整個portValue總投資組合的,但在那裏我試圖投資組合的比例添加到每個股票行不工作右擊 - 它僅僅出現在其中一隻股票中的奇怪之處。有人可以建議嗎?
以下@jDo,在哪裏呢'ticker'來自? – mikeqfu
@j對不起,我沒有包含頂級代碼,我從excel文件中讀取並賦值。這個單引號只是我在這裏輸入代碼時的一個錯誤。我剛剛編輯我的帖子以包含值分配。 –
有沒有一種很好的方式來按「部門」來總結股票百分比?例如,以獲得所有部門的名單,該部門的所有股票的百分比...... –