Python3排序函数functools.cmp_to_key原理
记录一下python3的排序函数
- 首先,先来看一段代码
import functools
compare=lambda x,y:1 if x<y else -1
test=[1,2,3,4,5]
test.sort(key=functools.cmp_to_key(compare))
print(test)
输出结果:
如上图所以,这段代码的作用是我们自定义了排序规则compare
,然后test列表通过该规则进行排序,实现了数组由大到小的排序
- 探究compare:
接下来问题是看看compare机制,
import functools
compare=lambda x,y:1 if x<y else print('x:',x)
test=[1,2,3,4,5]
test.sort(key=functools.cmp_to_key(compare))
print(test)
看一下结果:
由上图,我们看到x代表为后面的一个元素,y代表前面的一个元素。
3.规则
compare=lambda x,y:1 if x<y else -1
。如果得到的值小于0,则交换值。如果值大于等于0,则不执行任何操作