小编wc0*_*001的帖子

匹配两个列表中的列表元素,这两个列表总和相同

我有两个数字列表(A和B),A中某些元素的组合应该与B中某些元素组合的总和相同.当匹配组时,匹配的元素将从其列表中删除,直到所有组合都匹配.

例如,使用两个列表:

A = [7, 8, 12, 300, 350]
B = [3, 4, 20, 150, 500]
Run Code Online (Sandbox Code Playgroud)

匹配组的总和将是:

{7: [{'A': [7], 'B': [3, 4]}],
 20: [{'A': [8, 12], 'B': [20]}],
 650: [{'A': [300, 350], 'B': [150, 500]}]}
Run Code Online (Sandbox Code Playgroud)

到目前为止我解决这个问题的天真方法是从每个列表中得到所有可能组合的总和(pow(2,len(mylist)) - 1),在两组所有组合之间做一组交集,然后删除元素按顺序排列,直到占用所有元素.

有谁知道一个更有效的算法来实现这一目标?扩展到每个列表的所有可能组合然后进行集合交叉可以变大.

这是天真的方式:

def getCombos(stuff):
    res = []
    for L in range(1, len(stuff) + 1):
        for subset in itertools.combinations(stuff, L):
            res.append(subset)
    return res

Acombo = getCombos(A)
Bcombo = getCombos(B)
AcomboSum = [sum(tup) for tup in Acombo]
BcomboSum = [sum(tup) for tup in …
Run Code Online (Sandbox Code Playgroud)

python

8
推荐指数
1
解决办法
190
查看次数

来自 h2o 的 Python data.table

我看过两个 H2O 演示,包括 Sri 在 H2O World 2017 上的主题演讲,他们提到了 R data.table 包的 Python 版本。但是,我一直无法找到有关此的任何其他信息。

这是否可以作为独立的 python 模块使用(或计划成为一个模块)?

python h2o

3
推荐指数
1
解决办法
714
查看次数

标签 统计

python ×2

h2o ×1