很多时候需要对二维列表的第一个元素或者是第二个元素按照升序或者降序的规则排序,python提供了lambda表达式方便我们自定义排序的规则,可以直接调用列表的sort方法(sort方法会修改当前的列表)进行排序或者直接使用sorted方法(sorted方法不会修改当前的列表)对列表进行排序,下面是具体的例子,可以使用python中的lambda表达式对其排序,在排序的时候需要写上:key=lambda x : ,x表示的是变量,也可以写成另外的变量,冒号后面跟着排序的参数,当一个参数的时候表示先对当前的参数进行排序,例如x[0]表示第一列的元素,x[1]表示第二列的元素...以此类推,当有两个参数的时候表示先对第一个参数排序,当第一个参数相同的时候按照第二个参数进行排序,当一行中超过两个元素的时候也是类似的
if __name__ == '__main__':
li = [[4, 2], [2, 3], [-3, 1], [5, 6]]
# 先对第一个参数排序
li.sort(key=lambda x: x[0])
print(li)
# 先对第二个参数排序
li = [[4, 2], [2, 3], [-3, 1], [5, 6]]
li.sort(key=lambda x: x[1])
print(li)
li = [[4, 2], [2, 3], [-3, 1], [5, 6]]
sorted(li, key=lambda x: x[0])
print(li)
# 当存在两个参数的时候表示先对哪一个参数进行排序, 当第一个参数相同的时候按照第二个参数对其排序
li = [[4, 3], [4, 2], [-3, 1], [5, 6]]
li.sort(key=lambda x: (x[0], x[1]))
print(li)
# 当每一行超过两个元素的时候也是类似的我们可以规定按照哪一列进行排序
li = [[1, 2, 3], [2, 3, 4], [3, 1, -1], [4, 6, 9]]
li.sort(key=lambda x: x[2])
print(li)