趁著空檔重寫了一次,應該會比之前的清楚一點
def main(lst, target): from collections import defaultdict, Counter dic=defaultdict(list) for c in lst: dic[c].append([c]) for i in range(c+1,target+1): for s in dic.get(i-c,[]): dic[i].append(s+[c]) for i in dic[target]: print(dict(sorted(Counter(i).items()))) #return dic[target] main([65,70,80],750) |