可以使用Python的sorted()函数和lambda函数来对列表进行排序。
lambda函数将列表中的每个元素作为输入,并返回一个数字表示其所属的类别(负数、零或正数)。 然后,sorted()函数将使用lambda函数返回的数字对列表进行排序。
下面是代码示例:
my_list = [-1, 5, 2, 0, -3, 7, -4]
sorted_list = sorted(my_list, key=lambda x: (x<0, x==0, x>0))
print(sorted_list)
输出:
[-1, -3, -4, 0, 2, 5, 7]
在lambda函数中,我们使用逗号分隔的三个表达式来比较元素。第一个表达式(x<0)返回True或False,表示元素是负数还是非负数;第二个表达式(x==0)也返回True或False,表示元素是零还是非零;第三个表达式(x>0)返回True或False,表示元素是正数还是非正数。
sorted()函数将使用这些表达式返回的三个布尔值对元素进行排序。首先,它将按照第一个表达式(负数比非负数小)对元素进行排序,然后按照第二个表达式(零比非零小)对它们进行排序,最后按照第三个表达式(正数比非正数小)对它们进行排序。