在递归函数中访问全局变量

问题描述 投票:-2回答:2

我编写了一个递归函数,它创建了nx3数据的所有可能结果的组合,其中n是可变的

数据点的结构[name_of_variable cluster_number uniqueness_condition]

from collections import defaultdict
x= [[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,[])

我试图在w中存储所有生成的3对但最后我得到一个空列表,我在哪里出错任何帮助将不胜感激

附:如果写print(list)而不是w.append(list),则打印所有正确的列表。

python recursion global
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.