neu*_*ino 7 python sorting list
比方说,我有一个n个数字的数组[1,4,6,2,3].排序的数组是[1,2,3,4,6],并且旧数组中这些数字的索引是0,3,4,1和2.给定n个数组的数组,找到这个索引数组的最佳方法是什么?
我的想法是为每个元素运行订单统计信息.但是,由于我必须多次重写此功能(比赛中),我想知道是否有一个简短的方法来做到这一点.
use*_*282 14
>>> a = [1,4,6,2,3]
>>> [b[0] for b in sorted(enumerate(a),key=lambda i:i[1])]
[0, 3, 4, 1, 2]
Run Code Online (Sandbox Code Playgroud)
说明:
enumerate(a) 返回包含原始列表中的索引和值的元组的枚举: [(0, 1), (1, 4), (2, 6), (3, 2), (4, 3)]
然后sorted使用基于原始值key的lambda i:i[1]排序(每个元组的第1项).
最后,列表理解[b[0] for b in... ]返回原始索引(每个元组的第0项).
| 归档时间: |
|
| 查看次数: |
7160 次 |
| 最近记录: |