【发布时间】:2020-03-26 08:32:12
【问题描述】:
在 Python 中迭代 subset_candidates 并检查它是否是任何 groups 集合的子集的有效方法是什么?
下面的示例只有几个项目,但我希望有 10k 个子集候选者和 10k 个组,所以我想知道有效的方法。
也许networkX 是解决方案,但我不知道应该对这种情况应用哪种方法。
subset_candidates = [
[2, 3], # true (subset of groups[0])
[10, 12], # false
[100, 110], # true (subset of groups[2])
[1, 10, 100], # false
]
groups = [
[1,2,3],
[10,11,13],
[100, 105, 110],
]
【问题讨论】:
-
issubset怎么样? -
如果类型只是列表,则如下所示:
all(x in group for x in subset) -
@AlexanderLekontsev 最好根据搜索的复杂性更改类型。
-
@dspencer 这是一个很好的解决方案,我不知道。但它必须每次循环
groups。这是唯一的方法吗?
标签: python python-3.x list algorithm set