我试图通过几个标准(长度、后缀和字母顺序)来处理排序。虽然我不能完全掌握它,但我似乎只能按长度排序......
这是我的代码(python 2.7.9):
#!/usr/bin/python
sortme = [
'one.ab',
'two.ef',
'three.ab',
'six.ef',
'seven.jk',
'eight.ef',
'nine.xy',
'five.xy',
'ten.ab',
'Four.ef'
]
sortme.sort(key=lambda item: (-len(item), item), reverse=True)
print(sortme)
这得到了长度部分,但我真的想得到:
(ab)
one.ab
ten.ab
three.ab
(ef)
six.ef
two.ef
four.ef
eight.ef
(jk)
seven.jk
(xy)
five.xy
nine.xy
您可以将多个排序键指定为一个元组:
sortme.sort(key=lambda item: (item.split('.')[1], len(item), item), reverse=False)
print("\n".join(sortme))
输出:
one.ab
ten.ab
three.ab
six.ef
two.ef
Four.ef
eight.ef
seven.jk
five.xy
nine.xy
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句