多进程map返回DataFrame列表,如何生成以Ticker为键的对应字典?
有两种非常简洁的实现方案:
方案1:无需修改原有下载函数(最省事)
Shark_pool.map()返回的列表顺序和你传入的Tickers列表顺序是严格一一对应的,直接用字典推导式拼接即可:
All_coins_history = Shark_pool.map(refractor_get_history, Tickers) # 直接拼接为字典 all_coins_dict = {ticker: df for ticker, df in zip(Tickers, All_coins_history)}
方案2:修改下载函数返回结构(更鲁棒)
如果担心后续逻辑变更导致顺序错位,可以调整refractor_get_history函数的返回值,让它同时返回对应ticker和DataFrame:
# 调整后的refractor_get_history示例 def refractor_get_history(ticker): # 原有下载逻辑不变 df = 原有下载逻辑返回的DataFrame return (ticker, df)
调整后直接把map结果转字典即可,不需要额外拼接:
all_coins_dict = dict(Shark_pool.map(refractor_get_history, Tickers))
内容的提问来源于stack exchange,提问作者Kalindro
相关产品推荐
相关产品推荐

