将函数的结果与循环存储在变量中

时间:2016-10-30 10:28:48

标签: python numpy

这可能是一个非常基本的问题,我必须将一个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)

有谁知道为什么会这样?

1 个答案:

答案 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']]