首页 > 解决方案 > 根据具有多个列表的 2 个不同的 citeria 进行排序

问题描述

我有 2 个列表

list1 =[0.11,0.11,0.22,0.11,0.22]
list2 = [a,o,q,d,e]

我想先按数字排序,然后再按字母排序。我的愿望输出:

list1 =[0.22,0.22,0.11,0.11,0.11] #sort decesding
list2 =[e,q,a,d,o] #sort acesding for first 2 since they have larger num in list 1, thn only sort others (acesding also)

我尝试了以下方法,但它只根据一个 citeria 排序

list1, list2 = zip(*sorted(zip(list1,list2), reverse=True))

请帮忙........

标签: pythonlistsorting

解决方案


你接近了,试试这个。

list1, list2 = zip(*sorted(zip(list1,list2), key=lambda x : x[0], reverse=True))

list1

(0.22, 0.22, 0.11, 0.11, 0.11)

list2

('q', 'e', 'a', 'o', 'd')

推荐阅读