TypeError:sort()不接受位置参数



我正在尝试将Python2代码更改为Python3代码。有类似的代码吗?

indice.sort(lambda x,y: -cmp(topic[x], topic[y]))

topic是一个浮动列表。indicetopic的索引列表。类似:indice = list(range(len(topic))).

根据λuser在评论中给出的链接,Python 3(>=3.2(中的标准方法是使用functools.cmp_to_key:

import functools
...
keyfunc = functools.cmp_to_key(lambda x,y: -cmp(topic[x], topic[y]))
indice.sort(key=keyfunc)

使用key = lambda ...。解释器说排序方法不能根据其位置来解释参数(lambda表达式(,它需要参数名称key =

最新更新