から要素を削除します。私は、変数持つリスト
x = 4
をそして、私はリストを持っている:
list = [{'name': u'A', 'value': '1'}, {'name': u'B', 'value': '4'}, {'name': u'C', 'value': '2'}]
にはどうすれば値= xのリストの要素を削除/除外することができますか?
から要素を削除します。私は、変数持つリスト
x = 4
をそして、私はリストを持っている:
list = [{'name': u'A', 'value': '1'}, {'name': u'B', 'value': '4'}, {'name': u'C', 'value': '2'}]
にはどうすれば値= xのリストの要素を削除/除外することができますか?
list comprehensionはこれに最適です。
[ k for k in list if int(k['value']) != x ]
またfilter
を使用することができますが、私は、リストの内包表記は、スタイルの点で好ましいと考えている:
filter(lambda p: int(p['value']) != x, list)
編集:あなたの値は文字列である気づいたので、私はint型の変換を追加しました。
[list comprehensionsは実際に 'map()'と 'filter()'よりも好まれています( 'reduce()'についても考えません!)](http://www.artima.com/weblogs/viewpost)。 jsp?thread = 98196)BDFLはこう言っています! –
[Pythonリストから値の出現をすべて削除](http://stackoverflow.com/questions/1157106/remove-all-occurences-of-a-value-from-a-python-list) ) – Marcin
これは値自体の値ではなく、値のプロパティであるため、正確な複製ではありません。 –