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

使用list.pop()触发TypeError:列表对象无法转为整数的问题排查

问题分析与解决

错误原因

list.pop()方法必须接收整数类型的索引值作为参数,但你传入的x是列表中的元素(从pandas读取后,每个x实际是包含单个单词的子列表,比如['apple']),并非整数,因此触发TypeError。

除此之外,你的代码还有两个隐藏问题:

  • 遍历列表的同时直接修改列表(调用pop)会打乱遍历逻辑,导致部分元素被跳过,无法完成完整过滤。
  • 从pandas读取的values.tolist(),如果words.csv是单列存储单词,每个x是长度为1的子列表,len(x)得到的结果是1,永远不等于5,这会导致你错误地尝试移除所有元素。

正确实现方式

方式一:用Pandas直接过滤(更高效)

import pandas as pd

# 读取CSV文件,若文件无列名,添加header=None参数
df = pd.read_csv('words.csv')
# 过滤出长度为5的单词,转换为列表
filtered_words = df[df.iloc[:, 0].str.len() == 5].iloc[:, 0].tolist()

方式二:用列表推导式处理

import pandas as pd

# 先把读取到的嵌套列表转为一维单词列表
word_list = [item[0] for item in pd.read_csv('words.csv').values.tolist()]
# 筛选长度为5的单词
filtered_words = [word for word in word_list if len(word) == 5]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:54:17