リストから値のすべての出現を削除しますか? 質問する

リストから値のすべての出現を削除しますか? 質問する

Python では、remove()リスト内の値の最初の出現を削除します。

リストから値のすべての出現を削除するにはどうすればよいですか?

私が考えているのは次の通りです。

>>> remove_values_from_list([1, 2, 3, 4, 2, 2, 3], 2)
[1, 3, 4, 3]

ベストアンサー1

機能的アプローチ:

Python 3.x

>>> x = [1,2,3,2,2,2,3,4]
>>> list(filter((2).__ne__, x))
[1, 3, 3, 4]

または

>>> x = [1,2,3,2,2,2,3,4]
>>> list(filter(lambda a: a != 2, x))
[1, 3, 3, 4]

または

>>> [i for i in x if i != 2]

Python 2.x

>>> x = [1,2,3,2,2,2,3,4]
>>> filter(lambda a: a != 2, x)
[1, 3, 3, 4]

おすすめ記事