如何在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 ...]。
阿晨1998
TA貢獻2037條經驗 獲得超6個贊
myList = [1, 2, 3, 100, 5] sorted(range(len(myList)),key=myList.__getitem__)[0, 1, 2, 4, 3]
添加回答
舉報
0/150
提交
取消
