タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

リスト削除に関するGen2423のブックマーク (3)

  • [小ネタ]Pythonのループ内でリストの要素を削除する時の注意点 | DevelopersIO

    はじめに こんにちは、サーバーレス開発部の岡です。 普段Pythonを使っている人であれば当たり前の仕様かもしれませんが、Pythonでリストの要素をループ内で削除するときは少し工夫が必要です。 初心者だとハマりどころかと思うので、メモとして残しておきます。 ループ内で削除してみる data = [0,1,2,3,4,5,6,7,8,9] for i in data: data.remove(i) 期待する結果としては空のリストです。 ですが結果を見てみると、 print(data) // [1, 3, 5, 7, 9] なぜか奇数が残りました。 一瞬バグかと思いますがPythonの仕様です。 公式ドキュメントを見てみると、以下のように書かれていました。 注釈 ループ中でのシーケンスの変更には微妙な問題があります (これはミュータブルなシーケンスのみ、例えばリストで起こり得ます)。 どの要

    [小ネタ]Pythonのループ内でリストの要素を削除する時の注意点 | DevelopersIO
  • 【Python】リストの要素を削除するforループの書き方【一般的な方法と高速な方法】

    Python のリスト (list) から『条件を指定して要素を削除』するためには、リストを for 文にかける必要がありました。 そのコード例と速さの比較を紹介します。 for 文で問題になったのが、インデックスエラー (IndexError: list assignment index out of range) でした。 ループ中に要素を削除したことが、for 文に影響してしまって、エラーが発生していたようでした。 そこで、エラーを出さない削除方法を6種類しらべて比較しました。 大きく分けて、リストのコピーと .remove() を使った『一般的な削除方法』と、要素のインデックスを指定して del 文 や .pop() で削除していく『高速な削除方法』の2つがありました。 どの方法を使ったらいいのか? 結論 通常は for t in v[:]: v.remove(t) を使う 通常は

    【Python】リストの要素を削除するforループの書き方【一般的な方法と高速な方法】
  • 【python】listをforループで回してremoveしたら思い通りにならない - 静かなる名辞

    forループでループ対象のリストから要素を削除してしまったりすると、まったく想定と違った結果になってしまうことがあります。 pythonプログラミングを始めたばかりの人がよくハマるトラブルです。日語Web圏にはイマイチよくまとまった記事がないようなので、まとめておきます。 スポンサーリンク 問題の概要 たとえば、0から9のリストから偶数だけ取り出そうとして、こんなコードを書いてみます。 >>> lst = [0,1,2,3,4,5,6,7,8,9] >>> for x in lst: ... if x%2 != 0: ... lst.remove(x) ... >>> lst [0, 2, 4, 6, 8] 一見すると上手く動いているようです。調子に乗って、今度は3の倍数を取り出そうとしてみます。 >>> lst = [0,1,2,3,4,5,6,7,8,9] >>> for x in

    【python】listをforループで回してremoveしたら思い通りにならない - 静かなる名辞
  • 1