2016-10-30 22 views
0

辞書のグループを繰り返し、特定のキーの値がゼロのすべての辞書を削除したい場合、どうすればいいですか? 私はもともと以下のコードを試しましたが、多くの場合、オブジェクトの削除に伴ってグループの長さが減少するため、明らかに機能しません。pythonキー値を持つ辞書を反復的に削除

data = [{'symbol': 'AA', 'sum': 0}, {'symbol': 'BB', 'sum': 0}, {'symbol': 'CC', 'sum': 10}] 

for i in range (0, len(data)): 
     if data[i]["sum"] == 0: 
      del data[i] 

答えて

1

リストを移動している間は、リストから要素を削除することは実際にはおすすめしません。

多くの神託のソリューションは次のようになります!

data = [{'symbol': 'AA', 'sum': 0}, {'symbol': 'BB', 'sum': 0}, {'symbol': 'CC', 'sum': 10}] 
data = [x for x in data if x['sum'] != 0] 

我々はすでにdataに持って、我々はすべての項目に基づいてリストを作成します。この方法であればアイテム[「合計」] = 0

関連する問題