2012-02-18 5 views
0

から要素を削除します。私は、変数持つリスト

x = 4 

をそして、私はリストを持っている:

list = [{'name': u'A', 'value': '1'}, {'name': u'B', 'value': '4'}, {'name': u'C', 'value': '2'}] 

にはどうすれば値= xのリストの要素を削除/除外することができますか?

+0

[Pythonリストから値の出現をすべて削除](http://stackoverflow.com/questions/1157106/remove-all-occurences-of-a-value-from-a-python-list) ) – Marcin

+0

これは値自体の値ではなく、値のプロパティであるため、正確な複製ではありません。 –

答えて

8

list comprehensionはこれに最適です。

[ k for k in list if int(k['value']) != x ] 

またfilterを使用することができますが、私は、リストの内包表記は、スタイルの点で好ましいと考えている:

filter(lambda p: int(p['value']) != x, list) 

編集:あなたの値は文字列である気づいたので、私はint型の変換を追加しました。

+3

[list comprehensionsは実際に 'map()'と 'filter()'よりも好まれています( 'reduce()'についても考えません!)](http://www.artima.com/weblogs/viewpost)。 jsp?thread = 98196)BDFLはこう言っています! –

関連する問題