如何根据状态汇总Python范围?

时间:2019-05-05 08:09:05

标签: python range

我很难为自己想做的事情找到合适的用语,这就是为什么我的问题(标题)目前有点不准确(一旦被更好的理解将进行编辑)。

一个例子:我每天都有时间范围:

[ { "begin": "02:05", "end": "07:05" },
  { "begin": "14:05", "end": "17:05" } ]

在这些时间里,有可用的资源(在我看来,是较便宜的电力)。

然后有一个对象想要在这些时间范围内将此资源用作优先级。 (以我为例,为一块巨大的电池充电)。还有一个开始时间和理想的结束时间。

使用其他单位的其他量程也存在相同的问题。例如,巨大的电池根据其充电状态具有不同的充电效率。因此充电速度不同。

[ { "begin": 0,    "end": 0.1, "eff": 0.82 },
  { "begin": 0.11, "end": 0.8, "eff": 0.98 },
  { "begin": 0.81, "end": 1,   "eff": 0.82 } ]

该表需要使用可用功率,电池容量和目标充电状态来计算充电至选定状态所需的总时间。


这种问题的正确名称是什么?什么是正确的条款?

我当前的实现是在这些范围内循环,并用一堆if和else处理极端情况。它可以工作,但是我对代码并不感到骄傲。

Python中是否有任何库/工具可以帮助我简化丑陋的循环?

是否有一个python库提供了一种计算机制

1 个答案:

答案 0 :(得分:0)

我仍然不太确定您的预期输出是多少,但是从htr.dev的注释中,我认为您要针对的是某种矩阵加权和。

这可能需要使用矩阵和向量,但这可能会导致您编写的代码更加简洁,简单并且快得多。

据我所知,像numpy这样的库提供了此类计算的功能。 看看这个问题:Numpy Array summing with weights