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

删除CSV中不匹配技能列表时触发TypeError问题求助

问题解决:TypeError: argument of type 'NoneType' is not iterable

错误根源

list.extend()是原地修改列表的方法,它不会返回新列表,而是返回None。你把stop.extend(new_stopwords)的结果赋值给new_stop,导致new_stop变成了None,后续判断x in new_stop时,自然触发"NoneType不可迭代"的错误。

修复方案

方案1:保留原stop列表,创建新的扩展列表

skills_csv = pd.read_csv("Skills.csv")
new_stopwords = skills_csv["Skills"].tolist()

# 复制原stop列表,再扩展新技能
new_stop = stop.copy()
new_stop.extend(new_stopwords)

# 过滤skills_list中不在允许列表里的内容
df_result["skills_list"] = df_result["skills_list"].apply(lambda x: " ".join(x for x in x.split() if x in new_stop))
df_result

方案2:直接修改原stop列表(无需赋值)

如果不需要保留原stop的内容,可以直接扩展原列表,不用接收返回值:

skills_csv = pd.read_csv("Skills.csv")
new_stopwords = skills_csv["Skills"].tolist()

# 直接扩展原stop列表,不用接收返回值
stop.extend(new_stopwords)

# 过滤skills_list中不在允许列表里的内容
df_result["skills_list"] = df_result["skills_list"].apply(lambda x: " ".join(x for x in x.split() if x in stop))
df_result

优化建议

如果技能数量较多,建议把技能列表转成集合,因为in操作在集合中的查询效率远高于列表:

# 转成集合
new_stop_set = set(new_stop)  # 对应方案1;方案2用set(stop)
df_result["skills_list"] = df_result["skills_list"].apply(lambda x: " ".join(x for x in x.split() if x in new_stop_set))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:15:39