Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 将带有lambda函数的排序移植到Python 3_Sorting_Python 3.x_Lambda - Fatal编程技术网

Sorting 将带有lambda函数的排序移植到Python 3

Sorting 将带有lambda函数的排序移植到Python 3,sorting,python-3.x,lambda,Sorting,Python 3.x,Lambda,我正在将代码从Python2.7移植到Python3。2to3无法转换以下行,似乎无法理解。感谢您的帮助 subpaths.sort( lambda x, y : int(pyx.unit.tocm(x.arclen() - y.arclen()) / math.fabs(pyx.unit.tocm(x.arclen() - y.arclen()))) ) 列表的方法需要一个键,这是一个只包含一个参数的函数。您需要将lambda函数转换为单参数函

我正在将代码从Python2.7移植到Python3。2to3无法转换以下行,似乎无法理解。感谢您的帮助

subpaths.sort(
    lambda x, y :
        int(pyx.unit.tocm(x.arclen() - y.arclen()) /
            math.fabs(pyx.unit.tocm(x.arclen() - y.arclen()))) )
列表
的方法需要一个
,这是一个只包含一个参数的函数。您需要将lambda函数转换为单参数函数。有一个快捷方式可以实现由提供的快捷方式。因此,您可能需要的是:

import functools
subpaths.sort(key=functools.cmp_to_key(lambda x, y: ...))
请注意,如果我正确理解您的代码,您只需使用以下键对列表进行排序:

subpaths.sort(key=lambda x: pyx.unit.tocm(x.arclen()))
列表
的方法需要一个
,这是一个只包含一个参数的函数。您需要将lambda函数转换为单参数函数。有一个快捷方式可以实现由提供的快捷方式。因此,您可能需要的是:

import functools
subpaths.sort(key=functools.cmp_to_key(lambda x, y: ...))
请注意,如果我正确理解您的代码,您只需使用以下键对列表进行排序:

subpaths.sort(key=lambda x: pyx.unit.tocm(x.arclen()))

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。如果不知道
子路径
是什么以及
x
y
是什么,就不可能回答此问题。但问题已得到回答…寻求调试帮助的问题(“此代码为什么不工作?”)必须包括所需的行为,一个特定的问题或错误,以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。如果不知道
子路径
是什么,以及
x
y
是什么,就不可能回答这个问题。然而,答案已经给出……这个解决方案肯定是最快实现的。但是,如果OP有时间的话,IMO应该考虑从头开始写代码< > CMP < /代码> LAMBDA,以提高代码的效率和可读性,这个解决方案是最快实现的。但是,如果OP有时间的话,IMO应该考虑从头写代码<代码> >密钥< /代码> LAMBDA来替换<代码> CMP < /代码> lambda,以提高效率和可读性。