目次
正解
ホームページ バックエンド開発 Python チュートリアル Python でリストを反復処理中にリストから項目を削除すると、奇妙な結果が発生する

Python でリストを反復処理中にリストから項目を削除すると、奇妙な結果が発生する

Feb 09, 2024 am 10:10 AM
暗黙的な変換

在 Python 中迭代列表时从列表中删除项目时出现奇怪的结果

質問の内容

次のコードがあります:

リーリー

ただし、得られる結果は次のとおりです:

[2、4、6、8、10、12、14、16、18、20、21、22、23、24、25、26、27、28、29、30、31、32、33、 34、35、36、37、38、39、40、41、42、43、44、45、46、47、48、49]

もちろん、結果に 20 未満の数字が表示されないことを願っています。削除するときに何か間違ったことをしたようです。


正解


リストを反復処理しながらリストを変更しています。これは、最初のループでは i == 1 であるため、1 がリストから削除されることを意味します。次に、for ループはリストの 2 番目の項目 (2 ではなく 3) に進みます。その後、リストから削除され、for ループはリスト内の 3 番目の項目 (現在は 5) に進みます。などなど。 ^ を使用して i の値を指すと、これを視覚化するのが簡単になるかもしれません:

リーリー

これはリストの初期状態です。その後、1 が削除され、ループはリストの 2 番目の項目に進みます:

リーリー ###等。

リストを反復中にリストの長さを変更する良い方法はありません。あなたができる最善のことはこれです:

リーリー

または、インプレース変更の場合は次のようになります (括弧内は、スライスが割り当てられる前に暗黙的にタプルに変換されるジェネレータ式です):

リーリー

n を削除する前に操作を実行したい場合は、次の方法を試すことができます: リーリー

以上がPython でリストを反復処理中にリストから項目を削除すると、奇妙な結果が発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaでshortを使用する方法 Javaでshortを使用する方法 May 07, 2024 am 03:33 AM

short は、-32,768 ~ 32,767 の範囲の 16 ビット符号付き整数を表す Java のプリミティブ データ型です。これは、カウンタや ID などの小さな整数を表すためによく使用され、基本的な算術演算と型変換をサポートします。ただし、short は符号付き型であるため、除算を使用する場合はオーバーフローやアンダーフローを避けるために注意する必要があります。

SQLでのifnullの使用法 SQLでのifnullの使用法 Apr 28, 2024 am 09:57 AM

IFNULL 関数は、式が NULL かどうかをチェックし、NULL である場合は指定されたデフォルト値を返し、そうでない場合は式の値を返します。これにより、Null 値によるエラーの発生が防止され、Null 値の操作が可能になり、クエリの可読性が向上します。使用法には、NULL 値をデフォルト値に置き換える、計算から NULL 値を除外する、および複数の NULL 値の状況を処理するためのネストされた使用法が含まれます。

Javaのcharとはどういう意味ですか? Javaのcharとはどういう意味ですか? May 01, 2024 pm 06:15 PM

Java の char 型は、U+0000 から U+FFFF までの 2 バイトを占める単一の Unicode 文字を格納するために使用されます。これは、一重引用符または Unicode エスケープ シーケンスを通じて初期化できます。比較、等価、不等式、結合演算に参加でき、暗黙的に int 型に変換することも、明示的に Character オブジェクトに変換することもできます。

C言語で割り算を計算する方法 C言語で割り算を計算する方法 Apr 13, 2024 pm 09:12 PM

C 言語では、除算演算子 / の動作はオペランドのデータ型によって異なります。 整数除算: オペランドが整数の場合、整数除算が実行され、結果は切り捨てられます。浮動小数点除算: オペランドが浮動小数点数の場合、浮動小数点除算が実行され、結果は浮動小数点数になります。型変換: 一方のオペランドが整数で、もう一方のオペランドが整数でない場合、整数は暗黙的に浮動小数点数に変換され、浮動小数点除算が実行されます。 0 による除数: 除数が 0 の場合、数学的エラーが発生します。モジュロ演算: モジュロ演算には、モジュロ除算ではなく % 演算子を使用します。

mysql で * は何を意味しますか mysql で * は何を意味しますか Apr 26, 2024 am 07:21 AM

MySQL のアスタリスク (*) は「すべて」を意味し、さまざまな用途があります。 すべての列を選択 すべての行を選択 テーブルの JOIN ワイルドカード LIKE 句 REGEXP 句の量子子の暗黙的な型変換

オラクルでの (+ の使用法) オラクルでの (+ の使用法) May 08, 2024 pm 08:12 PM

Oracle のプラス (+) 演算子は、文字列、数値、日付、および時間間隔を接続する、NULL 値を処理する、および NULL を非 NULL 値に変換する、データ型を文字列型に変換するために使用できます。

C++ 関数のオーバーロードの一致ルールは何ですか? C++ 関数のオーバーロードの一致ルールは何ですか? Apr 27, 2024 am 08:27 AM

C++ 関数のオーバーロードの一致ルールは次のとおりです。呼び出し内のパラメータの数と型を一致させます。パラメータの順序は一貫している必要があります。 constness 修飾子と参照修飾子は一致する必要があります。デフォルトのパラメータを使用できます。

暗黙的な型変換の一般的なアプリケーション シナリオを見てみましょう。 暗黙的な型変換の一般的なアプリケーション シナリオを見てみましょう。 Jan 11, 2024 pm 04:45 PM

暗黙的な型変換の一般的なアプリケーション シナリオを見てみましょう。はじめに: プログラミング言語では、暗黙的な型変換は自動的に実行されるデータ型変換プロセスです。一部のプログラミング言語では、この変換は、コンパイラまたはインタプリタに変換を実行するように明示的に指示する必要がなく、暗黙的に実行されます。暗黙的な型変換には、プログラミングにおける幅広い応用シナリオがあります。この記事では、一般的な応用シナリオのいくつかについて説明します。数値計算における暗黙的な型変換 数値計算では、異なる型のデータ間の演算が必要になることがよくあります。データの種類が異なる場合

See all articles