簡體   English   中英

將帶有循環的函數的結果存儲在變量中

[英]Store the result of a function with loop in a variable

這可能是一個非常基本的問題,我必須將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 = func1(df)
print(dividends)

有誰知道為什么會這樣?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM