列表排序:
在py3.x中cmp参数被移除
py2.x:
list.sort(cmd, key, reverse)
py3.x:
list.sort(key, reverse)
那么在py3.x中如何在列表排序时为其加入比较函数呢
答案是:使用functools.cmp_to_key
只需要用这个函数把比较函数包裹传给key即可
list.sort(key=functools.cmp_to_key(_sort))
经常遇到版本排序的问题:
下面是给list排序时传入的cmp函数
def _sort(v1, v2):
v1 = v1.strip('v')
v2 = v2.strip('v')
v1_list = [int(item) for item in v1.split('.')]
v2_list = [int(item) for item in v2.split('.')]
for i in range(len(v1_list)):
if v1_list[i] > v2_list[i]:
return 1
elif v1_list[i] < v2_list[i]:
return -1
return 0