python iteratively deleting dictionaries with key value
本问题已经有最佳答案,请猛点这里访问。
如果我想迭代一组字典,删除所有某个键的值为零的字典,我该怎么做呢?我最初尝试了下面的代码,但在很多情况下显然不起作用,因为随着对象的删除,组的长度会减小。
1 2 3 4 5 | 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 2 | data = [{'symbol': 'AA', 'sum': 0}, {'symbol': 'BB', 'sum': 0}, {'symbol': 'CC', 'sum': 10}] data = [x for x in data if x['sum'] != 0] |
这样我们就可以根据我们在