首页 > 解决方案 > 如何在选择排序中打印索引

问题描述

下面是选择排序的代码

    def solve(A):
        l = []
        for i in range(len(A)):
            min_idx = i
            for j in range(i+1, len(A)):
                if A[min_idx] > A[j]:
                    min_idx = j
            #swap
            A[i], A[min_idx] = A[min_idx], A[i]
            l.append(A[i])
        return l

查找索引的代码

for i in l:
    m.append(A.index(i))

此处查找索引的代码不起作用,因为

标签: python

解决方案


你可以通过很多方式做到这一点。这是一个,

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

所以你可以在你的函数中取出这个并取出列表理解,这应该可以工作。如果不清楚,请告诉我。


推荐阅读