1

すべての値が一意であるリストがある場合、コードは正常に実行されます。ただし、リスト内に重複する値がある場合、次の反復の最小値を見つけるときに、リストの残りの部分だけでなく、リスト全体から取得します。

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]
4

1 に答える 1