为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Python中获取已排序数组的索引

如何在Python中获取已排序数组的索引

慕森王 2019-08-16 14:31:33
如何在Python中获取已排序数组的索引我有一个数字列表:myList = [1, 2, 3, 100, 5]现在,如果我对此列表进行排序以获取[1, 2, 3, 5, 100]。我想要的是排序顺序中原始列表中元素的索引,即[0, 1, 2, 4, 3] --- ala MATLAB的sort函数,它返回值和索引。
查看完整描述

3 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

像下一个:

>>> myList = [1, 2, 3, 100, 5]>>> [i[0] for i in sorted(enumerate(myList), key=lambda x:x[1])][0, 1, 2, 4, 3]

enumerate(myList) 为您提供包含(索引,值)元组的列表:

[(0, 1), (1, 2), (2, 3), (3, 100), (4, 5)]

您可以通过将列表传递给sorted并指定一个函数来对列表进行排序,然后指定一个函数来提取排序键(每个元组的第二个元素;这就是lambda它的用途。最后,使用列表推导提取每个已排序元素的原始索引[i[0] for i in ...]


查看完整回答
反对 回复 2019-08-16
?
阿晨1998

TA贡献2037条经验 获得超6个赞

myList = [1, 2, 3, 100, 5]    sorted(range(len(myList)),key=myList.__getitem__)[0, 1, 2, 4, 3]


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 1273 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信