我有一个没有对象的同类列表,但是它可以包含任何类型的值。
示例:
>>> 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方式排序,但是列表末尾没有任何值,比如:
[1, 2, 3, 4, 5, 7, None]
我觉得这里有一些关键参数的技巧
Tags:
我创建了一个函数来扩展Andrew Clark的答案和tutuDajuju的评论。
下面是一个如何运行它的示例:
试试这个:
由于无穷大大于所有整数,
None
将始终放在最后。这将为列表中的每个元素构造一个元组,如果值是
None
,则为(True, None)
的元组,如果值是其他值,则为(False, x)
(其中x
是值)。由于元组是按项排序的,这意味着所有非None
元素都将首先出现(因为False < True
),然后按值排序。相关问题 更多 >
编程相关推荐