gpt4 book ai didi

python - 通过 Python 中的集合成员资格对整数进行分组

转载 作者:行者123 更新时间:2023-11-28 17:53:09 32 4
gpt4 key购买 nike

在 Python 中工作,给定范围 range(s,n) 中的 N 组整数的列表,我如何构建一个列表,根据它们的集合成员资格对所有这些整数进行分组?一个例子真的会帮助我在这里解释:

示例输入(N=2 组):

integerRange = range(0,13)
input = [set([0,1,2,3,7,8,9,12]), set([0,1,2,3,4,5,6,12])]

期望的输出:

out = [set([10,11]), set([4,5,6]), set([7,8,9]), set([0,1,2,3,12])]

因此在输出中,range(s,n) 中的每个整数恰好出现一次,并且有 2^N 个集合。在示例中,out[0] 包含两个集合中都不存在的整数。 out[1] 包含第二组中但不是第一组中的整数。 out[2] 包含第一组中的整数而不是第二组中的整数。最后 out[3] 包含两个集合共有的整数。

对于 2 组,这相当容易……但我对 N 组感到难过。有人知道吗?

最佳答案

我什至不敢考虑这样做的效率,但它非常紧凑:

 out = [set(range(x, y))]
for in_set in input:
out_diff = [out_set - in_set for out_set in out]
out_union = [out_set & in_set for out_set in out]
out = out_diff + out_union

关于python - 通过 Python 中的集合成员资格对整数进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6040919/

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