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

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

我有一个数字列表:

myList = [1, 2, 3, 100, 5]

现在,如果我对此列表进行排序以获取[1, 2, 3, 5, 100]。我想要的是排序顺序中原始列表中元素的索引,即[0, 1, 2, 4, 3] --- ala MATLAB的sort函数,它返回值和索引。


慕森王
浏览 1274回答 3
3回答

慕桂英546537

像下一个:>>> 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 ...]。

阿晨1998

myList = [1, 2, 3, 100, 5]    sorted(range(len(myList)),key=myList.__getitem__)[0, 1, 2, 4, 3]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python