【发布时间】:2017-12-16 22:47:46
【问题描述】:
我有一个不是从零开始的时间序列中的天数的列表:
days = [2,3,4,5,...]
我还有另一个列表是从第 0 天开始的所有日子的云分钟数:
weather = [0,120,150,60,120,30,300,...]
我想遍历days,如果weather中的对应索引大于某个值,则将其删除。
我试过了
downtime = 100
days_new = [x for i, x in enumerate(days) if weather[i] < downtime]
这应该会导致:
days_new = [3,5,...]
因为删除的索引 (2,4) 在列表 weather 中具有大于 100 的值。
但它是根据days 的索引 而不是它作为索引的值来删除它们。 IE。这仅适用于我的列表从 0 开始,而不是任何大于 0 的整数。我该如何解决这个问题?
【问题讨论】:
-
@ChristianDean 因为他们将这些保留在索引
<。 -
您发布的代码应该可以工作。
-
@MosesKoledoye 啊,我明白他的意思了。他说的方式有点令人困惑。
-
除非两个列表不同步在这种情况下你必须做
days_new = [x for i, x in enumerate(days) if weather[i + 2] < downtime]
标签: python list indexing list-comprehension