lst=[5,6,7,8,9]
v=10
for item in lst:
if item<v:
lst.insert(0,v)
print(lst)
私はイムは10毎回挿入要素のPython
を挿入するtryningないので、それは次のようになります、リスト内のすべての要素が10の下にある場合、インデックス0で、10を挿入したいです:[ 10,5,6,7,8,9]
lst=[5,6,7,8,9]
v=10
for item in lst:
if item<v:
lst.insert(0,v)
print(lst)
私はイムは10毎回挿入要素のPython
を挿入するtryningないので、それは次のようになります、リスト内のすべての要素が10の下にある場合、インデックス0で、10を挿入したいです:[ 10,5,6,7,8,9]
v
より小さい元の値の数に基づいて元のリストの先頭に同じ値のv
を挿入しています。この場合、挿入順の保全は妥当ではありません。
挿入されたすべての値は同じで、変更されない元のリストの前に付加されます。さらに明確に基づいて更新答え
:、なぜこの
lst = [5, 6, 7, 8, 9] v = 10 count = 0 for item in lst: if item < v: count += 1 new_lst = [v] * count + lst print(new_lst)
結果
>>> [10, 10, 10, 10, 10, 5, 6, 7, 8, 9]
編集何かを使用しません
場合、私はイムは10たび
lst = [5, 6, 7, 8, 9]
v = 10
for item in lst[:]:
if item < v:
lst.insert(0, v)
break
print(lst)
結果
>>> [10, 5, 6, 7, 8, 9]
v
より小さい場合は、インデックス0
にv
が挿入されます。 item < v
の条件が満たされると、残りの項目をチェックせずにforループが終了します。そうでない場合、値のいずれもv
より小さい場合は、変更を加えずにリスト全体を走査します。
このコードでは、lst
アイテムのすべてが1回だけシフトするため、ここでは挿入メソッドを使用しています。
私は1回だけ10を含めるだけです – Charan
あなたが本当に後にしているのは、リスト内の要素のうちの* any *が 'v'の下にある場合です。現在のところ、あなたのサンプルコードは、 'v'より小さい項目を見つけ出すたびに10 *を挿入したいことを意味しています。 – trendsetter37
リストのすべての要素が10未満の場合はインデックス10に10を挿入したい、毎回10を挿入しない場合 – Charan
リストの反復処理中にリストを変更しないでください。これはうまくいきます: 'lst = [item
@StevenRumbalski私はワンライナーを望みません – Charan
希望するアイテムのリストに追加することで、ループの前に追加してください。そして、あなたのループの後で 'lst = prepend_items + lst'という代入をするか、元のオブジェクト' lst [0:0] = prepend_items'を実際に変更する必要があるかどうかを調べます。 –