遍历列表创建新列表时append函数触发AttributeError错误
问题分析与解决
错误根源
list.append()是原地修改列表的方法,它本身没有返回值(返回None)。你在代码里把append的结果重新赋值给了new_feedback:
new_feedback = new_feedback.append(str(word))
第一次执行这行代码后,new_feedback就被覆盖成了None。第二次循环时,调用None.append()自然会触发AttributeError: 'NoneType' object has no attribute 'append'。
修复方案
1. 正确初始化空列表
先确保new_feedback初始化为空列表:
new_feedback = []
2. 移除多余的赋值操作
直接调用append,不要把返回值赋给原变量:
for word in feedback_list: if word not in rejected_words: new_feedback.append(str(word)) # 这里不需要赋值 print(new_feedback) # else分支按需保留
额外优化写法
如果只是做列表过滤,还可以用更简洁的列表推导式替代循环,从根源避免这类赋值错误:
new_feedback = [str(word) for word in feedback_list if word not in rejected_words]
内容的提问来源于stack exchange,提问作者mohamed mahdi
相关产品推荐
相关产品推荐

