如何在Python函数中批量测试所有列表元素并筛选有效TickerZ
批量处理股票代码列表,筛选符合条件的Ticker对象
解决方案
直接遍历拆分后的列表x,对每个元素调用Symbol函数,将符合条件的返回值收集到结果列表中。可以用普通for循环或者列表推导式实现,后者更简洁。
修改后的完整代码
import yfinance as yf # 假设你的Memory类定义如下(根据原描述补充) class Memory: def __init__(self, ticker): self.ticker = ticker def Symbol(symbol): ticker = yf.Ticker(symbol) # 获取1年历史数据 hist = ticker.history(period="1y") if len(hist) >= 40: print(f"[{symbol}] 通过条件检测") # 创建Memory对象(保留原逻辑) Memory(ticker) return ticker # 返回符合条件的ticker对象 # 不符合条件时返回None,后续过滤掉无效结果 return None # 拆分字符串得到代码列表 target_str = 'Bingo Bango Bungo EURUSD=X' x = target_str.split() # 批量处理方式1:列表推导式(简洁高效) valid_tickers = [Symbol(symbol) for symbol in x if Symbol(symbol) is not None] # 批量处理方式2:普通for循环(可读性更强,适合加调试逻辑) valid_tickers = [] for symbol in x: ticker = Symbol(symbol) if ticker is not None: valid_tickers.append(ticker) # 输出最终结果 print("符合条件的Ticker列表:", valid_tickers)
关键说明
- 自动遍历列表
x所有元素,无需手动指定x[0]、x[1]这类索引 - 借助
Symbol函数的返回值做判断:符合条件返回ticker对象,不符合返回None,通过if过滤无效结果 - 两种处理方式可按需选择:列表推导式代码更紧凑,普通循环方便插入额外调试日志或中间处理步骤
内容的提问来源于stack exchange,提问作者Marc Kch
相关产品推荐
相关产品推荐

