0の値を削除せずにリストからNoneの値を削除する 質問する

0の値を削除せずにリストからNoneの値を削除する 質問する

これが私が最初に参考にした情報源です。

私のリスト

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]

おすすめ記事