すべての値が一意であるリストがある場合、コードは正常に実行されます。ただし、リスト内に重複する値がある場合、次の反復の最小値を見つけるときに、リストの残りの部分だけでなく、リスト全体から取得します。
for n in range(0,len(lst)):
    a = min(lst[n:])  #minimum value within remainder of set
    i = lst.index(a)  #index value for minimum value within remainder of set    
    temp = lst[n]
    lst[n] = a
    lst[i] = temp
結果は次のようになります。
lst = [6, 8, 9, 1, 3, 4, 7, 5, 4]
[1, 8, 9, 6, 3, 4, 7, 5, 4]
[1, 3, 9, 6, 8, 4, 7, 5, 4]
[1, 3, 4, 6, 8, 9, 7, 5, 4]
[1, 3, 6, 4, 8, 9, 7, 5, 4]
[1, 3, 6, 8, 4, 9, 7, 5, 4]
[1, 3, 6, 8, 9, 4, 7, 5, 4]
[1, 3, 6, 8, 9, 7, 4, 5, 4]
[1, 3, 6, 8, 9, 7, 5, 4, 4]
[1, 3, 6, 8, 9, 7, 5, 4, 4]
私はこれを返すためにそれを探しています:
[1, 3, 4, 4, 5, 6, 7, 8, 9]