有条件地从列表中删除元素

时间:2017-07-11 11:58:20

标签: python list indexing

我有一年中的日期列表:

days = [0,1,2,3,...,363,364,365]

当天云的分钟列表长度相同:

weather = [0,60,150,80,...,120,90,150]

如果days的相应索引值大于某个条件,我想删除weather中的项目,例如

condition = 120

然后我的days列表看起来像:

days_new = [0,1,3,...,364]

所以我想的是:

for i in xrange(len(days)):
    if weather[i] > condition:
        del days[i]

有没有整洁的'做这种操作的方式?

编辑:我的days列表不一定与其索引相对应,这是一个简化的案例

2 个答案:

答案 0 :(得分:2)

如果日期与eval `opam config env` 不匹配,您仍然可以使用index并使用list-comprehension获取enumerate,如下所示:

indices

答案 1 :(得分:0)

我不建议改变旧列表的状态,而是创建一个新列表:

>>> threshold = 60
>>> days = [0, 1, 2, 3]
>>> weather = [0, 60, 150, 80]
>>> [d for d, w in zip(days, weather) if w > threshold]

将输出:

[2, 3]