2017-01-04 12 views
1

でリストの内包に基づいて、条件の要素をスキップ:ゼロ未満の数値については私はリストのリストを持っているのpython

List = [-2,9,4,-6,7,0,1,-4] 

を(0)リストで、私はこれらの数字をスキップして、別のものを形成したいと思いますリスト。

例: -

List = [9,4,7,0,1] 

これは、我々が達成できるかどうかわからない私が持っている疑問のようなもの、です。達成することができれば、誰でもここに投稿してください。

+2

L2 = [E L1にEの場合はE> 0]と仮定 '入力リストとはl1''出力リストl2' –

+1

@C .LECLERC l2 =最後のリストでOPが0になる – depperm

答えて

10

これを達成するための選択肢はたくさんあります。 list comprehensionを使用すると、行うことができます。

my_list = [i for i in my_list if i>=0] 

filter()で:

my_list = filter(lambda i: i>=0, my_list) 

注:

のPython 3では、filter()filterオブジェクト(ないlist)を返し、それを変換するために、リストは、あなたが行うことができます:

my_list = list(filter(lambda i: i>=0, my_list)) 
+0

最後のリストでOPが0になる – Saksow

+3

'filter()'のラムダを書く必要があるときは、おそらくリストの理解になるはずです。 –

+0

@StevenRumbalskiありがとう、私は個人的にはLCを好むので、1行のコードで 'filter()'を使うことも可能であることを示したかっただけです。 – ettanany

2

変数名には最初に小文字を使用し、次に予約名であるためlistを使用しません。リスト内包内部場合

そしてだけ行う

my_list = [i for i in init_list if i >= 0 ] 
関連する問題