我正在使用开源Python代码。我认为它是为Python 2编写的,当我在Python3.3中运行它时,出现此错误:
TypeError: must use keyword argument for key function
指向这些代码行:
probs = [(word, pool[word]) for word in words if word in pool]
probs.sort(lambda x,y: cmp(y[1],x[1]))
代码的类似部分:
for pname, pprobs in pools.items():
p = self.getProbs(pprobs, tokens)
if len(p) != 0:
res[pname] = self.combiner(p, pname)
res = res.items()
res.sort(lambda x,y: cmp(y[1], x[1]))
给出相同的错误。
我是Python的初学者,所以如果有人可以告诉我如何更改代码,我将不胜感激。
cmp
已被贬低。使用key
代替。
probs = [(word, pool[word]) for word in words if word in pool]
probs.sort(key=lambda x: x[1])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句