【发布时间】:2021-07-18 08:31:18
【问题描述】:
我有两个可能的列表,一个是名字,第二个是年龄。我的函数需要返回这些列表的副本,以便它们都按年龄排序(降序)(即,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])
但为了正确,克里斯和查理需要交换位置。
【问题讨论】:
标签: python list loops sorting tuples