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

如何筛选Python列表指定前缀元素并避免NoneType的startswith报错

问题原因

你的猜测完全正确,报错触发的核心原因是列表中存在None这类非字符串类型的元素,这类元素没有startswith方法,调用时就会抛出AttributeError。

解决方案

你可以根据场景选择以下任意一种实现方式:

  • 方案1:先判断元素是否为字符串,再执行前缀匹配(最稳妥,不会出现非字符串转字符串后的误匹配问题)
result = [i for i in test if isinstance(i, str) and i.startswith('/players/')]
  • 方案2:先过滤掉None值再匹配(仅适合列表中只有None是非字符串元素的场景)
result = [i for i in test if i is not None and i.startswith('/players/')]
  • 方案3:统一转成字符串后再匹配(写法最简单,要注意是否存在非字符串元素转字符串后刚好匹配前缀的极端情况)
result = [i for i in test if str(i).startswith('/players/')]

以上三种方案运行后,得到的result均为你需要的球员链接列表:

['/players/england/dominic-solanke', '/players/england/jaidon-anthony', '/players/england/david-brooks', '/players/england/morgan-rogers', '/players/england/junior-stanislas', '/players/england/ben-pearson', '/players/england/jamal-lowe']

内容的提问来源于stack exchange,提问作者SlowBear

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:54:04