リスト内のアイテムを削除しようとしましたが、成功しませんでした。
>>> r = [1,2,3,4,5]
>>> for i in r:
if i<3:
del i
>>> print r
[1, 2, 3, 4, 5]
濾してみましたが、
>>> def f(i):
True if i>2 else False
>>> print list(filter(f,r))
[]
最初のものが機能しない理由がわかりません。を使用すると、結果がまったくわかりませんfilter(function,iterable)
。
編集:
以下のパウロのコメントを見ると、なぜこれが機能するのかわかりません。
>>> for i in r:
if i<3:
r.remove(i)
>>> print r
[3, 4, 5]
イテレータの問題がまだ残っていて、コードが最初の要素だけを削除してしまうべきではありませんか ( r[0]
)