ホームページ > バックエンド開発 > Python チュートリアル > 反復中に Python リストから要素を安全に削除するにはどうすればよいですか?

反復中に Python リストから要素を安全に削除するにはどうすればよいですか?

DDD
リリース: 2024-12-02 20:18:15
オリジナル
600 人が閲覧しました

How Can I Safely Remove Elements from a Python List While Iterating?

Python For ループ内のリスト要素を削除する

for ループを使用してリストを反復処理する場合、要素を直接削除することはできませんそのループの中で。これを実行しようとすると、以下の例に示すようにエラーが発生します。

a = ["a", "b", "c", "d", "e"]

for item in a:
    print(item)
    a.remove(item)  # This will cause an error
ログイン後にコピー

代替アプローチ

ループ内のリスト要素を効果的に削除するには、次のいずれかを検討してください。次のメソッド:

  • しばらく使用するループ:
while a:
    print(a.pop())
ログイン後にコピー
  • フィルターされた要素を含む新しいリストの作成:
result = []
for item in a:
    if condition is False:  # Replace condition with your own criteria
        result.append(item)
a = result
ログイン後にコピー
  • フィルターまたはリスト概要:
a = filter(lambda item:... , a)  # Replace ... with your condition
ログイン後にコピー
a = [item for item in a if ...]  # Replace ... with your condition
ログイン後にコピー

条件付き削除

特定の条件に基づいてアイテムを削除したい場合は、次のガイドラインに従ってください。

  • 少しだけ削除: filter() 関数またはリスト内包表記を使用して、不要な要素を除外した新しいリストを作成します。
  • 広範囲の削除の場合: 新しいリストを作成し、必要な要素を手動でコピーします。条件に一致する要素をスキップしながら要素を削除します。
  • インプレースの場合削除: Pop() メソッドで while ループを使用して、リストが空になるまで要素を 1 つずつ削除します。

以上が反復中に Python リストから要素を安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート