Python3:类型错误:“list”对象不是callab

2024-04-25 09:03:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为一个实践建立一个Huffman树,我构建元组的代码一直告诉我,对于以下代码,我得到了一个TypeError:'list'对象不可调用

  def buildTree(mylist) :
    while len(mylist) > 1 :
    leastTwo = tuple(mylist[0:2])   <<<<<<<< problematic line             
    theRest  = mylist[2:]                          
    combFreq = leastTwo[0][0] + leastTwo[1][0]     
    mylist   = theRest + [(combFreq,leastTwo)]     
    mylist.sort()                                  
    return mylist[0]   

更新:输入Mylist将是一个包含如下元组的列表:[(1,'b'),(1,'d'),(1,'g'),(2,'c'),(2,'f'),(3,'a'),(5,'e')]

我试着调试已经有一段时间了,但是我的解决方案都没有真正起作用。我遵循的是来自http://www.openbookproject.net/py4fun/huffman/huffman.html的指令,它做的事情和我完全一样,所以我不确定是什么地方出了问题,尤其是对我来说。在

非常感谢你的帮助!在


Tags: 对象代码lendeflist元组whilehuffman
1条回答
网友
1楼 · 发布于 2024-04-25 09:03:25

我想这就是你需要的:

def buildTree(mylist) :
    while len(mylist) > 1 :
        leastTwo = tuple(mylist[0:2])
        combFreq = leastTwo[0][0] + leastTwo[1][0]     
        mylist   = sorted(mylist[2:] + [(combFreq,leastTwo)], key=lambda a: a[0])
    return mylist[0]

mylist =  [(1, 'b'), (1, 'd'), (1, 'g'), (2, 'c'), (2, 'f'), (3, 'a'), (5, 'e')]
print(buildTree(mylist) )

最终结果如下:

^{pr2}$

相关问题 更多 >