我編寫了一個遞歸函數(shù),它創(chuàng)建 nx3 數(shù)據(jù)的所有可能結(jié)果的組合,其中 n 是可變的數(shù)據(jù)點的結(jié)構(gòu)[name_of_variable cluster_number uniqueness_condition]from collections import defaultdictx= [[1,1,'a'],[2,1,'b'],[3,1,'c'],[4,2,'c'],[5,2,'d'],[6,2,'a'],[7,3,'a'],[8,3,'d']]c=defaultdict(list)for i in x: c[i[1]]+=[i]w=list()def rec_cal(i,lis): if i in c.keys(): for j in c[i]: lis.append(j[0]) rec_cal(i+1,lis) lis.pop() else: global w w.append(lis)##print(lis)rec_cal(1,[])我試圖將所有生成的 3 對存儲在 w 中,但最后我得到一個空列表,我哪里出錯了,任何幫助將不勝感激ps 如果寫 print(lis) 而不是 w.append(lis) 打印所有正確的列表。
在遞歸函數(shù)中訪問全局變量
慕尼黑8549860
2021-06-04 01:17:52