python - 根据具有多个列表的 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))
请帮忙........
解决方案
你接近了,试试这个。
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')
推荐阅读
- java - 需要帮助搜索三个文件并打印出相同的公共行
- javascript - 如何使用 React JS 导出多个类组件?
- javascript - 图像在 Android 上消失(React-Native)
- python - 在python上迭代两次时出错
- vba - Excel-VBA UserForm ListBox - 如何在不选择的情况下突出显示选项
- python - 广播数组上的 tf.where()
- email - 来自 CRM 的电子邮件没有线程化
- profile - 获取万岁 Facebook 图片 URL
- mysql - Spring Boot UserRedirectRequiredException - 需要重定向才能获得用户的批准
- javascript - 模板文字导致无法识别的令牌错误