同时迭代和从数组中删除项目的最佳方法

时间:2014-08-14 00:58:25

标签: python

我有一个看起来像这样的数组:

data = [{'title':'10'},{'title':'15'},{'title':'25'},{'title':'6'},{'title':'4'}]

我希望迭代数组,同时删除符合特定条件的元素。

for element in data:
    if element['title'] > 10:
    # remove element from the array

在python中最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

data = [{'title':'10'},{'title':'15'},{'title':'25'},{'title':'6'},{'title':'4'}]

使用filter

>>> filter(lambda i : int(i['title']) <= 10, data)
[{'title': '10'}, {'title': '6'}, {'title': '4'}]

使用列表理解

>>> [i for i in data if int(i['title']) <= 10]
[{'title': '10'}, {'title': '6'}, {'title': '4'}]

答案 1 :(得分:0)

一种简单的方法。请注意[:]

for element in list[:]:
       if element['title'] > 10:
          list.remove(element)