我有一个列表,它是不从零开始的时间序列中的天数:
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 的 index 而不是它作为索引的值来删除它们。 IE。这仅在我的列表从 0 开始时有效,而不是任何大于 0 的整数。我该如何解决这个问题?
请您参考如下方法:
您的要求假设weather subscriptable days 中的所有项目,在这种情况下您不需要enumerate。直接用 days 中的索引索引 weather:
days_new = [x for x in days if weather[x] < downtime]
