反復処理が実行されている間changableです:可変範囲を構築できますか?変更可能なオブジェクトの上に
a = [11, 12, 13]
for i in a:
if i == 12:
a.append(20)
print(i)
結果を
11
12
13
20
そしてa
で[11, 12, 13, 20]
あるしかし、私はrange
を使用する場合には変更できません
a = [11, 12, 13]
for i in range(len(a)):
if i == 1:
a.append(20)
print(a[i])
しばらく
11
12
13
との
結果はまだその後[11, 12, 13, 20]
です。
myrange
オブジェクトを作成する方法はありますか?範囲と同じように動作しますが、実行中に変更可能ですか? 2番目のコードスニペットで
このコードには発電機がありません。いずれかのコードスニペットが何をしているのか理解していますか? – user2357112
警告:最初のコードは、比較と追加が同じ値であると頭痛を引き起こす可能性があります。あなたは警告を受け取ることはありませんが、反復しているリストを変更することは望ましくありません。 –
@ user2357112、私は何も確認しないようにしています:-)。しかし、この場合、私はちょうど "ジェネレータ"という言葉を誤解していると思います。私はこの問題を修正して取り除きました。 – Aguy