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

Python运行DBSCAN参数遍历代码报'list' object is not callable如何解决

报错原因排查

核心问题定位

你遇到的报错本质是Python内置的range函数被你覆盖成了列表变量:

TypeError: 'list' object is not callable

报错指向代码第6行的range(1, eps_intervals)调用,说明当前运行环境里的range已经不是原生生成序列的内置函数,而是一个你之前提前定义过的列表对象,列表不能像函数一样加括号调用,因此抛出该错误。

排查&修复方案

  • 检查当前代码的前置部分,有没有出现range = [xxx,xxx]这类把range作为变量名赋值的语句,把该变量名修改为其他不与内置函数重名的名称即可,比如range_list、eps_range。
  • 如果是在Jupyter Notebook等交互式环境运行,检查之前执行过的单元格有没有给range赋过值,重启内核重新运行代码即可验证问题是否解决。
  • 补充两个额外的修复点避免后续出现其他报错:
    1. 代码开头需要先导入依赖库,确认你已经添加了以下导入语句:
    import numpy as np
    from sklearn.cluster import DBSCAN
    
    1. 当前内层循环for j in range(max_pts)会出现j=0的情况,而DBSCAN的min_samples参数不允许为0,建议把内层循环修改为for j in range(1, max_pts)。

验证方法

你可以在循环前添加一行打印代码确认range的类型:

print(type(range), range)

如果输出结果不是<class 'builtin_function_or_method'>,就可以确认是range被覆盖的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:36:04