[解決済み] popメソッド(またはdel文)を持つforループがすべてのリスト要素に対して反復処理を行わない理由
2022-02-14 04:53:52
質問
私はPythonの初心者で、リストについて実験しています。 Python 3.2.3 (default, Oct 19 2012, 20:13:42), [GCC 4.6.3] on linux2 を使用しています。
以下は私のサンプルコードです。
>>> l=[1,2,3,4,5,6]
>>> for i in l:
... l.pop(0)
... print(l)
...
次のような出力が期待できます。
1
[2, 3, 4, 5, 6]
2
[3, 4, 5, 6]
3
[4, 5, 6]
4
[5, 6]
5
[6]
6
[]
代わりに、次のようなものが表示されます。
1
[2, 3, 4, 5, 6]
2
[3, 4, 5, 6]
3
[4, 5, 6]
for-loopは3ターン後に反復を停止します。なぜなのか、誰か説明してください。
解決方法は?
少し展開する(キャレット(
^
) はループの "インデックス" にあります)。
your_list = [1,2,3,4,5,6]
^
を弾き飛ばした後
your_list = [2,3,4,5,6]
^
では、ループを継続します。
your_list = [2,3,4,5,6]
^
では、最初の項目をポップアップで表示します。
your_list = [3,4,5,6]
^
では、ループを続けます。
your_list = [3,4,5,6]
^
さて、最初の項目をポップオフします。
your_list = [4,5,6]
^
さて、ループを続けよう -- 待って、もう終わったよ :-)
>>> l = [1,2,3,4,5,6]
>>> for x in l:
... l.pop(0)
...
1
2
3
>>> print l
[4, 5, 6]
関連
-
Python関数の高度な応用を解説
-
PicgoのイメージベッドツールをPythonで実装する
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
python implement mysql add delete check change サンプルコード
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み] Javaでenumを繰り返し処理するためのforループ
-
[解決済み] ディレクトリ内の全ファイルをforループで反復処理する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PicgoのイメージベッドツールをPythonで実装する
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み】forループ中にリストのエントリを修正する方法は?