完全削除
list1=[[1,3,5] , [9,7,6] , [11,2,12]]
上のリストでは、各要素の最後の位置に10より大きい要素のみが残ってlist 1に保存されます。
保存後出力list 1
import implements
list1 = [[1,3,5][9,7,6][11,2,12]]
for i in list1:
if i[2]<10:
list1.remove(i)
print(list1)
<출력>
[[9,7,6],[11,2,12]]
結果はなぜですか.1.初めてfor文を通過したとき、iがlist[0]を指す場合、if条件に基づいて1がリストされます.remove(i)が実行されます.
2.後でfor文に再び向かう過程でlist 1~1)の過程により[1,3,5]が消失していることがわかる.ここまで悪くないけど、
3.for文,2)を再度実行した後,iterableに変化が見られた.不思議なことに、コンピュータがiterableで変化したとき、iにlist[0]値を追加したことを覚えていますか.iはlist[1]値から始まります.この部分に問題がある.iはlist[0]の値から削除されません.解決すべき部分はlistが変化してもfor文のiが変更したlist値を最初から代入することである.
そのため、for文iterableビットの具体的な表現❕❕
list1 = [[1,3,5][9,7,6][11,2,12]]
for i in list1[:]:
if i[2]<10:
list1.remove(i)
print(list1)
[11,2,12]
リストt 1:をリストt 1[:]:に置き換え、インデックスを作成します。[:]は、最初の要素から最後の要素までの配列を表すリストです。 したがって、変更されたlist 1についても、iの最初の要素から代入することができる。
Reference
この問題について(完全削除), 我々は、より多くの情報をここで見つけました https://velog.io/@hojun1105/완전한-제거テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol