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

Python中字典值转列表全局运行正常,放入函数报list不可调用错误

错误原因

该报错是因为你把test函数的参数命名为了list,直接覆盖了Python内置的list()列表构造函数的作用域:

  • 在test函数内部,list不再指代用来创建列表的内置可调用对象,而是指向你传入的列表参数
  • 执行return list(v)时,代码尝试把一个列表实例当作函数调用,自然就抛出了'list' object is not callable的类型错误。

额外注意:你当前代码中循环for i in l直接引用了全局变量l,没有使用传入的参数,属于不规范写法,存在逻辑隐患。

修复方案
  1. 修改函数参数名,不要和Python内置标识符(比如list、dict、str这类内置类型/函数名)重名,比如改为input_list
  2. 同步修改循环逻辑,改为遍历传入的参数,避免依赖全局变量

修复后的完整代码如下:

def test(input_list):
    result = {}
    for i in input_list:
        result[i] = result.get(i, 0) + 1
    v = result.values()
    return list(v)

l = [1,2,1,1,3,3,5,5,5,5,5,3,7]
print(test(l))

运行后将输出字典值对应的列表(Python3.7+版本输出顺序为[3, 3, 5, 1],低版本Python字典不保留插入顺序,输出顺序可能不同)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:27:03