我正在尝试将Python2代码更改为Python3代码。有类似的代码吗?
indice.sort(lambda x,y: -cmp(topic[x], topic[y]))
topic
是一个浮动列表。indice
是topic
的索引列表。类似: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 =