尝试对列表进行排序,但保持与其他列表的连接。做了一些阅读并找到了zip功能,但是我想按照年龄的降序排列列表,也不是名字。
names = ["Ged","Ethan","Sam","Paul"]
ages = [15,9,12,19]
list(zip(names,ages))
for i,j in sorted(zip(names,ages),reverse=True):
print(i,j)
我似乎无法得到其余部分。有什么帮助吗?
答案 0 :(得分:2)
只需添加key
函数即可将反转元组作为标准返回:
for i,j in sorted(zip(names,ages),reverse=True,key=lambda x : x[::-1]):
print(i,j)
首先考虑年龄,然后考虑名称(如果年龄相同),而不仅仅是lambda x : x[1]
,而不是将名称考虑在内
另一种简单的方法是恢复字段,以便自然排序标准起作用:
for i,j in sorted(zip(ages,names),reverse=True):
print(j,i)