第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將值添加到存儲為字典值的列表中?

如何將值添加到存儲為字典值的列表中?

qq_花開花謝_0 2023-10-31 10:57:07
我有一本空字典,需要根據(jù)股票代碼提取行業(yè)信息。然后,我想將同一行業(yè)下的所有股票添加到以行業(yè)為鍵的列表中。例如,最終結(jié)果如下所示:{'technology': ['AAPL', 'ADBE'], 'Consumer Cyclical': ['TSLA', 'UA']}這是我一直在努力但沒有成功的事情:import yfinance as yftickers = ['AAPL', 'ADBE', 'AMD', 'AMAT', 'AMZN', 'ANF',                    'APA', 'BA', 'BABA', 'BBY', 'BIDU', 'BMY', 'BRX', 'BZUN',                    'C', 'CAT', 'CLF', 'CMCSA', 'CMG', 'COST', 'CRM', 'CVX',                    'DE', 'EBAY', 'FB', 'FCX', 'FDX', 'FSLR',                     'GILD', 'GM', 'GME', 'GOOG','GPRO', 'GS',  'HAL', 'HD',                    'HIG', 'HON', 'IBM', 'JCPB', 'JD', 'JPM', 'LULU', 'LYG',                     'MA', 'MCD', 'MDT', 'MS', 'MSFT','MU', 'NEM', 'NFLX',                    'NKE','PBR', 'QCOM', 'SLB', 'SNAP', 'SPG', 'TSLA', 'TWTR',                    'TXN', 'UA', 'UAL', 'V', 'VZ' 'X', 'XLNX', 'ZM']sector_dict = dict()for ticker in tickers:    try:        sector = yf.Ticker(ticker).info['sector']        sector_dict[sector].update(ticker)    except:        sector_dict.update({'no sector':[ticker]})下面只給了我一本空字典。有人看出問題出在哪里嗎?
查看完整描述

2 回答

?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗 獲得超4個贊

假設(shè)您需要的信息是從 API 調(diào)用返回的 - 下面的代碼可能適合您。


import yfinance as yf

from collections import defaultdict

tickers = ['AAPL','ADBE']

sector_dict = defaultdict(list)

for ticker in tickers:

  try: 

    sector_dict[yf.Ticker(ticker).info['sector']].append(ticker)

  except Exception as e:

    print(f'Failed to get ticker info for {ticker}')

print(sector_dict)

輸出


defaultdict(<class 'list'>, {'Technology': ['AAPL', 'ADBE']})


查看完整回答
反對 回復(fù) 2023-10-31
?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗 獲得超4個贊

您應(yīng)該始終避免包羅萬象的異常。


update您最初的示例掩蓋了不是列表方法的事實。當(dāng)您為像這樣的Python字典添加下標(biāo)時sector_dict[ticker],我們現(xiàn)在討論的是與鍵關(guān)聯(lián)的值ticker。在本例中是一個列表。


另外更新也不是這樣使用的,所以我認(rèn)為它掩蓋了第二個錯誤。它的用法是用另一個字典或可迭代對象更新一個字典。不更新現(xiàn)有條目。


最后,該try子句應(yīng)盡可能小,以便確定錯誤來自何處,或者至少可以保證不會出現(xiàn)像本例這樣的沖突異常。


我認(rèn)為這就是為什么您的列表在我之前的解決方案中僅返回最后一個股票代碼,因為yf.Ticker導(dǎo)致 aKeyError并KeyError調(diào)用異常而不是最后一個。


我是這樣做的:


sector_dict = {'no sector':[]}

for ticker in tickers:

    try:

        sector = yf.Ticker(ticker).info['sector']    

    except KeyError:

        sector_dict['no sector'].append(ticker)

    try:

        sector_dict[sector].append(ticker)

    except KeyError:

        sector_dict[sector] = [ticker]


查看完整回答
反對 回復(fù) 2023-10-31
  • 2 回答
  • 0 關(guān)注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號