我尝试根据对象中某个参数的累积值将python中的对象列表拆分为子列表。让我以示例的形式介绍它:
我有一个像这样的对象列表:
[{x:1, y:2}, {x:3, y:2}, ..., {x:5, y: 1}]
我希望将此列表划分为子列表,其中子列表中x值的总和将相同(或大致相同),因此结果可能如下所示:
[[{x:3, y:1}, {x:3, y:1}, {x:4, y:1}], [{x:2, y:1}, {x:2, y:1}, {x:6, y:1}]]
其中x'es的总和等于10.我正在使用的对象有点复杂,我的x'是浮点值。所以我想聚合有序列表中的值,直到x'的总和为> = 10,然后开始创建下一个子列表。
就我而言,第一个元素列表是一个有序列表,总和必须在有序列表上进行。
我已经在C#中做了类似的事情,在那里我遍历所有元素,并保留一个“x”值的计数器。我将连续对象的x值加起来,直到达到我的阈值,然后创建一个新的子列表,然后重启我的计数器。
现在我想在python中重新实现它,然后将其与Spark一起使用。所以我正在寻找更多的“功能”实现,也许可以很好地使用map-reduce框架。我想不出另一种方法而不是迭代方法。
如果您有任何建议或可能的解决方案,我欢迎所有建设性意见。