如何识别列表中不含$符号且含至少3个大写字符的候选股票代码
功能实现代码
你可以在原有筛选逻辑的基础上增加分支判断,当带$的候选列表为空时,额外筛选符合大写字符要求的元素即可,完整逻辑如下:
# 原有逻辑:获取标题并拆分 title = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[3]/div/div/div/div[2]/div[1]/div[2]/div[1]/div/div[3]/div[1]/div/h1").text title = title.split() # 第一步:先筛选带$符号的股票代码 likely_ticker = [string for string in title if "$" in string] # 第二步:如果没有带$的结果,筛选包含至少3个大写字符的元素 if not likely_ticker: likely_ticker = [s for s in title if sum(char.isupper() for char in s) >= 3]
效果测试
- 场景1:标题带$符号
输入拆分后的标题:['Why', '$SAM', 'is', 'the', 'ultimate', 'lotto']
输出结果:['$SAM'] - 场景2:标题无$符号,存在纯大写股票代码
输入拆分后的标题:['TSLA', 'will', 'split', 'next', 'week']
输出结果:['TSLA']
可选优化建议
为了减少普通全大写单词(如组织机构名、专有名词)的误判,可以增加长度限制,美股代码通常为1-5个字符,调整筛选条件如下:
if not likely_ticker: # 同时满足:大写字符≥3,总长度≤5 likely_ticker = [s for s in title if sum(char.isupper() for char in s) >=3 and len(s) <=5]
内容的提问来源于stack exchange,提问作者dam1ne
相关产品推荐
相关产品推荐

