有的时候需要对两个列表进行排序,并且要求排序之后两个列表对应位置的值应该是一一对应的,比如有两个列表分别是scores = [1,2,3,5], ages = [8,9,10,1],ages中的年龄一一对应scores中的分数,现在要求按照年龄从小到大进行排序,并且排序之后年龄对应的分数不改变位置,这个其实有点类似于java中的对象数组的排序,我们需要将这两个数组看做是一个对象然后对其进行排序,对于python语言而言,可以使用zip函数与sort函数与lamada表达式实现排序
zip函数可以将两个列表的元素一一对应起来,sort函数中可以传递一个lamada表达式声明按照列表中的哪一个键进行排序
if __name__ == '__main__':
scores = [4,5,6,5]
ages = [2,1,2,1]
arr = list(zip(ages, scores))
arr.sort(key=lambda x: (x[0], x[1]))
print(arr)