私のリスト
L = [0, 23, 234, 89, None, 0, 35, 9]
これを実行すると:
L = filter(None, L)
この結果を得る
[23, 234, 89, 35, 9]
しかし、私が本当に必要としているのはこれではありません。
[0, 23, 234, 89, 0, 35, 9]
データのパーセンタイルを計算しているので、0 は大きな違いを生みます。
0 値を削除せずにリストから None 値を削除するにはどうすればよいですか?
ベストアンサー1
>>> L = [0, 23, 234, 89, None, 0, 35, 9]
>>> [x for x in L if x is not None]
[0, 23, 234, 89, 0, 35, 9]
楽しみのために、filter
を使用せずにこれを行う方法を次に示しますlambda
(このコードはお勧めしません。科学的な目的のためだけです)
>>> from operator import is_not
>>> from functools import partial
>>> L = [0, 23, 234, 89, None, 0, 35, 9]
>>> list(filter(partial(is_not, None), L))
[0, 23, 234, 89, 0, 35, 9]