gpt4 book ai didi

python - 将测试分成偶数时间奴隶

转载 作者:行者123 更新时间:2023-11-28 22:54:41 25 4
gpt4 key购买 nike

将测试拆分为偶数时间的从机。

我有每个测试需要多长时间的完整列表。

它们是 python 行为测试功能。

从站是通过 Jenkins 创建的。


我将测试分成了 x 个从属。这些从属运行测试并返返回告。

问题:一些从站比其他从站运行测试的时间更长。例如。一个需要 40 分钟,另一个需要 5 分钟。

我想取平均数。

我目前有一个文件列表和所需时间。

[
['file_A', 501],
['file_B', 350],
['file_C', 220],
['file_D', 100]
]

extra...有n个文件

目前这些文件按文件数量分成列表,我想按所用的总时间将它们分开。例如...运行这 4 个测试的 3 个从站看起来像...

[
[
['file_A', 501],
],
[
['file_B', 350],
],
[
['file_C', 220],
['file_D', 100]
]
]

类似的东西......

请帮忙

谢谢!

最佳答案

你可以这样做:

def split_tasks(lst, n):
# sorts the list from largest to smallest
sortedlst = sorted(lst, key=lambda x: x[1], reverse=True)
# dict storing the total time for each set of tasks
totals = dict((x, 0) for x in range(n))
outlst = [[] for x in range(n)]
for v in sortedlst:
# since each v[1] is getting smaller, the place it belongs should
# be the outlst with the minimum total time
m = min(totals, key=totals.get)
totals[m] += v[1]
outlst[m].append(v)
return outlst

产生预期的输出:

[[['file_A', 501]], [['file_B', 350]], [['file_C', 220], ['file_D', 100]]]

关于python - 将测试分成偶数时间奴隶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17770896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com