我有一个整数列表,我试图将它们分组为三十个,然后产生所有较小组的输出(现在等于三十)。
我是一个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]
提前谢谢!!