初学使用python通过tushare调取股票数据,尝试调取多条数据,看到一个教程给出的代码如下:
def multi_stocks(tickers):
def data(ticker):
stocks = pro.daily(trade_date='ticker')
return stocks
datas = map(data, tickers)
return pd.concat(datas,keys=tickers)
tickers = ['000001','000002','600030']
all_stocks = muti_stocks(tickers)
问题: 不理解调用的时候是传入了tickers,但是内部函数的参数ticker,python是怎么知道是指tickers里的每一条数据呢?
ticker是指代传入参数的,整整传入的是下方的调用
第二个参数
,依次传入第一个参数对应的函数
进行处理,这里即将tickers
中的每一条元素传入data
函数处理有帮助望采纳~
关键是理解map函数的作用。map第一个参数为函数,第二个参数为可迭代对象。例中map就是将列表对象tickers每个元素映射到函数data上,实现每个ticker数据调用。
datas = map(data, tickers)
等价于
datas=[]
for ticker in tikers:
datas.append(data(ticker))
多谢几位老师