python - 2 个列表的排序标准
问题描述
我有两个清单:
a = [2,3,1,4]
b=[two, three, one, four]
我需要按升序对第一个列表进行排序,但我需要第二个列表(由字符串组成)遵循相同的排序。也就是说,我希望得到以下结果:
a = [1,2,3,4]
b = [one, two, three, four]
有没有人有一个简单的方法来做到这一点?
解决方案
aa, bb = zip(*sorted(zip(a, b)))
顺便说一句,您需要引用第二个列表中的项目,除非这些是变量引用。
内部 zip 将两个列表放在一个元组中:
[(2, 'two'), (3, 'three'), (1, 'one'), (4, 'four')]
sorted 进行排序。元组按它们的第一个键排序:
[(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
外部 zip & * 运算符的用法是“解压缩列表”pythonic 技巧。
推荐阅读
- python - “KeyError: 0” 与 xgboost、scikit-learn 和 pandas
- mysql - 如何查找 id 是否存在于另一列的多个实例中?
- javascript - JavaScript 媒体查询和 CSS 动画的问题
- node.js - req.isAuthenticated 不是重构中间件后的函数
- typescript - 从嵌套对象的 getter 访问包装对象的属性
- typescript - 具有泛型参数的 typeof 类
- ruby-on-rails - 如何在 Rails 的脚手架资源中添加路由
- python - keras GRU 不会采用我简单的二维数组
- firebase - IONIC 3:推送通知点击什么也不做
- python - python sql查询列表中的时间戳