为了账号安全,请及时绑定邮箱和手机立即绑定

关于Python求list子集问题。。。一直搞不懂!小白求教!?

关于Python求list子集问题。。。一直搞不懂!小白求教!?

asdhjhg 2017-04-11 13:21:48
def gs(l):     res=[]     if len(l)==0:         return [[]]     small=gs(l[:-1])#这里每次调用gs之后会一直减小到空集!那么     #这代码永远都return空集啊!因为small调用到最后总会满足if len(l)==0:     extra=l[-1:]     new=[]     for sml in small:         new.append(sml+extra)         print new     return small+new我还画了个草图,没搞明白。。。
查看完整描述

1 回答

?
ruibin

TA贡献358条经验 获得超213个赞

其实这里就是一个闭包问题。最主要的是你要明白

 for sml in small:

        new.append(sml+extra)

        print new

    return small+new

这行代码执行了多少次! (每调用一次gs, 他就执行一次,只是在最后执行罢了!切记,每次extra的值都不一样哦)

这个就是闭包和递归的结合,重要的是理解程序的执行。

查看完整回答
反对 回复 2017-04-11
  • 1 回答
  • 0 关注
  • 2875 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信