You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:35:17