Python 创建列表时遇到问题

Python 创建列表时遇到问题,python,python-3.x,list,finance,Python,Python 3.x,List,Finance,我制作了一个股票筛选器,它提供符合我标准的股票的技术信息,最后,我希望它打印出一份符合我标准的股票的简明列表。我尝试使用append函数,但它只打印一种股票,相反,我希望它打印打印的每种股票的股票代码,例如“mmm” 当前输出如下所示。 嗯 尾随市盈率:17.61 股本回报率:54.34% 收入:32.35亿美元 季度收入增长:-5.00% def scrape(库存清单、感兴趣的、技术性的): 对于每个库存清单: technicals=scrape_yahoo(每只股票) 条件_1=浮动(技

我制作了一个股票筛选器,它提供符合我标准的股票的技术信息,最后,我希望它打印出一份符合我标准的股票的简明列表。我尝试使用append函数,但它只打印一种股票,相反,我希望它打印打印的每种股票的股票代码,例如“mmm”

当前输出如下所示。 嗯 尾随市盈率:17.61 股本回报率:54.34% 收入:32.35亿美元 季度收入增长:-5.00%


def scrape(库存清单、感兴趣的、技术性的):
对于每个库存清单:
technicals=scrape_yahoo(每只股票)
条件_1=浮动(技术性。获取('股本回报率',0)。替换('%','')。替换('N/A','-100'))>25
条件2=浮动(技术参数get('training P/E',0)。替换('N/A','')>15

条件_3=float(technicals.get('Price/Book(mrq)'0))这是因为您在每个循环中重置了建议库存
SuggestedStocks=[]
您应该在循环外初始化它。

为什么要在
append()之前将
SuggestedStocks
初始化到循环内的空列表中
?我没有否决投票-请停止做出不真实的假设,继续讨论代码。例如,
if(条件1和条件2)==True:
,如果条件1和条件2:
,可能会像
那样更像python教-祝您愉快!我以后会注意的!
def scrape(stock_list, interested, technicals):
    for each_stock in stock_list:
        technicals = scrape_yahoo(each_stock)
        condition_1 = float(technicals.get('Return on Equity',0).replace('%','').replace('N/A','-100')) > 25
        condition_2 = float(technicals.get('Trailing P/E',0).replace('N/A','')) > 15
        condition_3 = float(technicals.get('Price/Book (mrq)',0)) <15
        if (condition_1 and condition_2)==True:
            print(each_stock)
            SuggestedStocks = []
            SuggestedStocks.append(each_stock)  
            for ind in interested: 

                print(ind + ": "+ technicals[ind])         
            print("------")
            time.sleep(1)                                                    # Use delay to avoid getting flagged as bot
    #return technicals
    print(SuggestedStocks)


def main():

    stock_list = ['MMM', 'ABT', 'ABBV', 'ABMD', 'ACN', 'ATVI', 'ADBE', 'AMD']
    interested = ['Trailing P/E', 'Return on Equity', 'Revenue', 'Quarterly Revenue Growth']
    technicals = {}

    tech = scrape(stock_list, interested, technicals)
    print(tech)
main()