按价值对浮动列表进行排序的最佳方法是什么,同时仍保留初始订单的记录.
即排序:
a=[2.3, 1.23, 3.4, 0.4]
Run Code Online (Sandbox Code Playgroud)
返回类似的东西
a_sorted = [0.4, 1.23, 2.3, 3.4]
a_order = [4, 2, 1, 3]
Run Code Online (Sandbox Code Playgroud)
如果你抓住我的漂移.
Sil*_*ost 16
你可以这样做:
>>> sorted(enumerate(a), key=lambda x: x[1])
[(3, 0.4), (1, 1.23), (0, 2.3), (2, 3.4)]
Run Code Online (Sandbox Code Playgroud)
如果需要索引以1而不是0开头,则enumerate接受第二个参数.
enumerate生成的序列号.sorted与a key一起使用以按浮动排序zip从值中分离出订单例如:
a_order, a_sorted = zip(*sorted(enumerate(a), key=lambda item: item[1]))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2283 次 |
| 最近记录: |