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

Python如何从嵌套列表子列表删除指定开头单词,解决AttributeError问题

错误原因

你的代码存在两个核心问题:

  1. sublist[0:]返回的是整个子列表对象,startswith是字符串类型的方法,列表没有该方法,所以触发AttributeError: 'list' object has no attribute 'startswith'报错
  2. 原逻辑没有遍历子列表内的每个单词元素,判断逻辑完全不匹配需求;同时直接在遍历列表时调用pop删除元素会导致索引偏移,出现漏判元素的问题
修复代码

推荐用列表推导式重构子列表的方式实现过滤,逻辑清晰且不会有索引问题:

lists = [["abcd", "abc", "ab",'bbc'], ["abcd", "abc", "ab",'bc'], ["abcd", "abc", "ab"]]
for index, sublist in enumerate(lists):
    # 保留规则:不是以a开头 或者 以abc开头的单词
    lists[index] = [word for word in sublist if not word.startswith('a') or word.startswith('abc')]

print(lists)
运行结果

输出和你期望的结果完全一致:
[['abcd', 'abc', 'bbc'], ['abcd', 'abc', 'bc'], ['abcd', 'abc']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:27:04