如何从每个子列表总和为30的整数主列表中创建列表?

时间:2016-06-02 16:06:41

标签: python list grouping

我有一个整数列表,我试图将它们分组为三十个,然后产生所有较小组的输出(现在等于三十)。

我是一个python新手,到目前为止,我能想到的唯一方法是对主列表进行排序,使用itertools.groupby获取相同数字的组,然后创建一组条件来查找30。 像这样:

    from itertools import groupby

    N =[1,2,3,4,3,2,3,4,6,5,3,2,4,6,4,12,2,4,5,6,7,45,23,3,4,6,22,5,4,3,21,3,4,11]
    N.sort()

   print ([list(j) for i, j in groupby(N)])

显然,我已经预见到了一些问题,其中最重要的是这个代码效率极低。

我希望有一些建议可以创建一个代码,将整数分组为30而无需替换 - 所以一旦将整数分配给一个组,它就无法重用。

因此,给出一个L = [12,18,2,22,14,6,4,7,5]

的列表

我会得到输出:[12,18] [2,22,6] [14,4,7,5]

也只是一个附带问题:

主列表实际上是字典的值。重新组合这些值后,它们是否会保留各自的键?我希望最终将输出作为分组值为30的键。

回过头顶的例子:

因此,给定一个字典L = {“A”:12,“B”:18,“C”:2,“D”:22,“E”:14,“F”:6,“G “4”,H “:7,” I“:5}

我会得到输出:[A,B] [C,D,F] [E,G,H,I]

提前谢谢!!

0 个答案:

没有答案