このような StackOverflow の質問をするための一般原則として、入力と出力の例を常に含める必要があります。何が起こるか、何が起こると予想されるかを示してください。
この場合、あなたのコードには2 つの3 つの問題があると思います。
編集: 3 番目に、おそらく最も重要なことですが、glglgl の回答を見てください。以下に説明する 2 つの修正を実装しても、まだ 1 つの問題があります。削除したいすべてのアイテムがコードで削除されるとは限りません。一部のアイテムがスキップされるためです。
まず、 indexalist[i]
の要素を取得します。しかし、すでにリスト内の連続した要素になると言っています。例:alist
i
for i in alist
i
mylist = [1, 2, 4]
for i in mylist:
print(i)
出力が得られます:
1
2
4
代わりにこれを言った場合(これはあなたが書いたようなものです)
mylist = [1, 2, 4]
for i in mylist:
print(mylist[i])
インデックス 1 の要素を取得し、インデックス 2 の要素を取得してから、インデックス 4 の要素を取得しようとしますが、それは存在しないため、期待どおりには機能しません。次のようなものが得られます。
2
4
IndexError: list index out of range
第二に、要素を削除するための構文が間違っています。alist.remove(i)
の代わりに使用する必要がありalist.remove[i]
ます。関数を呼び出したいので、括弧を使用します。角かっこは、インデックス付けとスライス用です。