我下面有一个数组,其中包含每天总计奶牛的产量。
[5, 3, 7, 9, 3, 3, 7, 108, 66, 16, 5, 3, 7, 3]
牛群中有两头奶牛,它们每天挤奶两次,因此我的阵列中有14个元素,每个元素代表每日总挤奶产量,因此每个元素有7个元素对应产量总计7天。
我的数组的格式是。
[Cow1Day1, Cow1Day2, Cow1Day3, Cow1Day4, Cow1Day5, Cow1Day6, Cow1Day7, Cow2Day1, Cow2Day2, Cow2Day3, Cow2Day4, Cow2Day5, Cow2Day6, Cow2Day7]
我需要找出在4天或更长的时间内哪头母牛产量低于12升。我该怎么做?
注意:根据用户的输入,我的牛群中甚至可以有更多的奶牛。
答案 0 :(得分:1)
试试这个:
Any better solutions? - which will revert one machine, apply all roles, take snapshot, then continue to the next machine.
答案 1 :(得分:0)
data = [5, 3, 7, 9, 3, 3, 7, 108, 66, 16, 5, 3, 7, 3]
首先分割您的奶牛数据,以获得每头牛每周产量的单独列表,如下所示:
cows = [data[x:x+7] for x in range(0, len(data), 7)]
输出:
[[5, 3, 7, 9, 3, 3, 7], [108, 66, 16, 5, 3, 7, 3]]
现在,对于每头奶牛,弄清楚任何4天窗口的总和是否小于12:
bad_yields = [any([sum(cow[n:4+n])<12 for n in range(len(cow)-4+1)]) for cow in cows]
输出:
[False, False]
最后,打印出哪些奶牛的产量低于12
for idx, ylt12 in enumerate(bad_yields):
if ylt12:
print("Yield less than 12 for cow %d" % (idx + 1))