我将代码从Python 2.7移植到3. 2to3不会转换以下行,但似乎无法弄明白。任何帮助表示赞赏。
subpaths.sort(
lambda x, y :
int(pyx.unit.tocm(x.arclen() - y.arclen()) /
math.fabs(pyx.unit.tocm(x.arclen() - y.arclen()))) )
答案 0 :(得分:2)
list
的{{3}}方法需要key
,这只是一个参数的函数。您需要将lambda函数转换为单个参数的函数。 sort
提供了一个快捷方式。因此,您可能需要的是:
import functools
subpaths.sort(key=functools.cmp_to_key(lambda x, y: ...))
请注意如果我正确理解您的代码,您只需使用以下键对列表进行排序:
subpaths.sort(key=lambda x: pyx.unit.tocm(x.arclen()))