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

Python代码运行报错TypeError:'builtin_function_or_method'不可迭代求解

解决Python代码中的TypeError: 'builtin_function_or_method' is not iterable错误

先来看你的代码问题:你遇到的报错是因为变量名大小写混淆+误用内置名称导致的,咱们一步步拆解解决:

错误原因分析

你在代码里定义了大写的ID变量来读取转录本文件,但在循环时却写了for sublist in id:——这里的小写id是Python的内置函数(用来返回对象的内存地址),它不是可迭代的列表/数据框,自然会抛出TypeError。另外你把变量名取成了list,这是Python的内置类型名称,容易引发隐性冲突,最好改掉。

修复后的完整代码

import sys
import pandas as pd

# 读取表达矩阵和转录本ID文件
matrix = pd.read_table('testGEM.txt')
ID = pd.read_table('test_transcripts.txt', header=None)

# 把ID转换成一维列表(替换内置名list为transcript_ids,避免冲突)
transcript_ids = []
for sublist in ID.values.tolist():
    for item in sublist:
        transcript_ids.append(item)

# 转换成tuple(其实直接用列表也可以,isin支持列表类型)
id_tuple = tuple(transcript_ids)

# 筛选矩阵中匹配的行
filtered_matrix = matrix[matrix.index.isin(id_tuple)]
filtered_matrix.to_csv('test10.out', sep='\t')

额外优化提示

你还可以简化ID的转换步骤,不用嵌套循环,直接用numpy的flatten方法快速转成一维列表:

transcript_ids = ID.values.flatten().tolist()

这样修改后,代码就能正常运行,筛选出你需要的行并输出到目标文件了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:09:51