这可能是一个非常基本的问题,我必须将一个for循环的结果存储在一个变量中,但不知怎的,这似乎不起作用:
import ystockquote
import numpy as np
我定义了股票向量
df = pd.DataFrame(np.array(['OXLC','CG','NYMT', 'MMLP','CMFN','PNNT']), columns=['Ticker'])
我使用循环来获得这些股票的股息:
def func1(df):
for x in df['Ticker']:
return ystockquote.get_dividend_per_share(x)
我将函数的结果存储在变量“dividends”中,但由于某些原因,在变量红利中我只找到出现在向量中的第一只股票的红利:
dividends = func1(df)
print(dividends)
有谁知道为什么会这样?
答案 0 :(得分:0)
return
立即从函数返回。因此,循环的第一次迭代正在发生,但是一旦到达return
语句,它就会返回该值。一种解决方案是在列表中收集结果,然后返回:
def func1(df):
results = []
for x in df['Ticker']:
results.append(ystockquote.get_dividend_per_share(x))
return results
对于这个简单的循环,您可能会考虑列表理解:
def func1(df):
return [ystockquote.get_divident_per_share(x) for x in df['Ticker']]