私は基本的な検索と並べ替えで誰かを指導しています。挿入ソートでは、数値的に前の値よりも大きい値がある場合、負の反復を行います。もちろん、存在しない array[-1] を呼び出すチェックがあるため、このアプローチは問題を引き起こす可能性があります。
以下の太字で下線が引かれているように、 and x > 0 ブール値を追加すると、インデックスの問題が回避されます。
私の質問は、これはどうですか?両方のブール値の有効性を保証するために、array[-1] の呼び出しが引き続き行われるのではないでしょうか?
the_list = [10,2,4,3,5,7,8,9,6]
for x in range(1,len(the_list)):
value = the_list[x]
while value < the_list[x-1] **and x > 0**:
the_list[x] = the_list[x-1]
x=x-1
the_list[x] = value
print the_list