我有两个可能的列表,一个是名字,另一个是年龄。我的函数需要返回这些列表的副本,使它们按照年龄(降序)排序(即lst1中员工的姓名也需要按照他们在lst2中的年龄排序)。如果两个或多个员工年龄相同,则还需要按照姓名排序(这次按照升序排列:A-Z)。
以下是我的代码。我能够生成这两个列表,但我不确定如何更改具有相同年龄的名称的顺序,以与其余列表相反的顺序排序。我知道应该使用一个循环,但不确定如何开始。
list_sorting(['Chris','Amanda','Boris','Charlie'],[35,43,55,35])
def list_sorting(lst1,lst2):
zipped=zip(lst2,lst1)
sorted_pairs= sorted(zipped,reverse=True)
tuples=zip(*sorted_pairs)
list1,list2 = [ list(tuple) for tuple in tuples]
return list2,list1
我得到的输出是:
(['Boris', 'Amanda', 'Chris', 'Charlie'], [55,43,35,35])
但为了使其正确,Chris和Charlie需要交换位置。