将字典值转换为列表在函数中不起作用

Convert dictionary value into list does not work in a function

这可以在没有函数的情况下工作。

v = list(dic.values()) #  V is a list.

但是如果我把它放在一个函数中,例如:

def test(list):
    result={}
    for i in l:
        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))

它引发错误,

Traceback (most recent call last):
  File `repNone.py`, line 83, in <module>
    print(test(l))
  File "`repNone.py`", line 81, in test
    return list(v)
TypeError: 'list' object is not callable

永远不要使用Built-in Function (比如list作为变量,你使用list作为变量

在您的函数中,您将 l 作为名称为 list 的变量传递,然后当您使用 list(v) 时出现错误,因为您无法调用变量。

你这样做了:

>>> def test(list):
        ...
...     return list(v) # <- got error because here list is variable and you call this.

像这样更改您的代码:

>>> def test(lst):
        ...
...     return list(v)