我有一本字典,上面有项目和每个项目的代表人数,例如:
{A: 3, B: 1}
我正在寻找一种方法来获得所有可能的不同组合,顺序并不重要:[AB]
与[BA]
相同。
想要的输出是:
[A, AA, AAA, B, AB, AAB, AAAB]
下面是一种使用列表理解和itertools.product
的方法:
from itertools import product, chain
d = {'A': 3, 'B': 1}
l = [[k*i for i in range(1,v+1)] for k, v in d.items()]
[''.join(element) for element in product(*l)] + list(chain.from_iterable(l))
输出:
['AB', 'AAB', 'AAAB', 'A', 'AA', 'AAA', 'B']
详情:
第一个列表理解的结果是一个嵌套列表,其中每个子列表都有字典中包含的每个键
,从1
重复到其相应的值
:
[['A', 'AA', 'AAA'], ['B']]
第二个,使用itertools执行笛卡尔乘积。产品
,并且每个产品都被连接成一个字符串。最后,使用链添加
:l
的扁平版本。从_iterable
print(list(chain.from_iterable(l)))
['A', 'AA', 'AAA', 'B']
[''.join(element) for element in product(*l)]
['AB', 'AAB', 'AAAB']
这个问题与这个问题非常相似,但我不想把每个原始组中的一个项目放在每个输出组中,而是希望每个原始组中的多个项目放在每个输出组中。 我有以下数据。 包含6个项目,包含6个项目,包含7个项目。基于这些初始组,我想将项目放入3个新组,确保每个新组包含相同数量(2或)的项目。此外,这3个新组中的每一个都不能重复这些项目——每个项目只能为每个新组使用一次。例如,一个可能的输出可能是下面的这个输出。 实际上,我
问题内容: 这个问题已经在这里有了答案 : 执行功能后,Python脚本返回意外的“无” [重复] (3个答案) 7年前关闭。 输出量 我不想要“无”,那么 如何执行一行代码以返回输入列表中的项目? 我试过了: 但这不起作用,因为return语句不能那样工作 问题答案: 您正在打印的返回码是。只需致电即可。
问题内容: 我需要获取数组的所有可能的子集,其中至少要包含2个项目,而最大未知数。有人可以帮助我一点吗? 说我有这个… …我怎么得到这个? 问题答案: 窃取此JavaScript组合生成器后,我添加了一个参数以提供最小长度,从而, 要使用,提供一个数组以及所需的最小子集长度, 输出是
假设数组是,现在获取此数组的所有子数组。对于每个子数组,在该子数组中找到最小值,也找到该子数组中的项目之和。最后添加所有这些值。输入无法按我想要的所有可能的子数组进行排序。 例子: 可能的子阵列包括: 最后,将所有这些值相加,得到结果=1 3 6 4 10 9=33。 约束:数组元素的范围从1到1000\u 000\u 000。数组大小从1到100\u 000。将输出作为模块7 1000\u 00
问题内容: 这里是问题:我有一个元组列表(也可以根据需要设置)。例如: 我想找到一个清单 因为一旦将所有集合放在一起,交集就不会为空。 举个例子 结果应该是 希望问题解决。那么,如果有的话,在python中最优雅的方法是什么? 干杯 问题答案: 这些是图形的 连接组件 ,可以使用诸如的图形库找到。对于第二个示例:
如何从具有重复元素且其和等于的 不允许重复元素。 我的Java解决方案 在,可能会出现无限循环(例如)或使用大量时间。如何修复这个错误,或者有其他解决方案吗?