我有一个无对象的同类对象列表,但是它可以包含任何类型的值。例:
>>> l = [1, 3, 2, 5, 4, None, 7]
>>> sorted(l)
[None, 1, 2, 3, 4, 5, 7]
>>> sorted(l, reverse=True)
[7, 5, 4, 3, 2, 1, None]
有没有一种方法可以不重新发明轮子,以使列表按通常的python方式排序,但是列表的末尾具有None值,如下所示:
[1, 2, 3, 4, 5, 7, None]
我觉得这里可以用“关键”参数一些技巧
>>> l = [1, 3, 2, 5, 4, None, 7]
>>> sorted(l, key=lambda x: (x is None, x))
[1, 2, 3, 4, 5, 7, None]
如果值是None
带有be的元组,则为列表中的每个元素构造一个元组。(True, None)
如果值是其他任何值(False, x)
(x
值在哪里)。由于元组是逐项排序的,所以这意味着所有非None
元素都将首先出现(因为False < True
),然后再按值进行排序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句