标题:请大神解释一下这个函数的解析过程
只看楼主
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
结帖率:100%
 问题点数:0 回复次数:1 
请大神解释一下这个函数的解析过程
程序代码:
def flatten(nested):
    try:
        for sublist in nested:
            for element in flatten(sublist):
                yield element
    except TypeError:
        yield nested
搜索更多相关主题的帖子: element nested 
2013-08-12 16:13
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
得分:0 
我想应该这样的,希望大神给与指点:
程序代码:
def flatten(nested):
    try:
        for sublist in nested:
            print 'AAAAAA'+str(sublist)
            for element in flatten(sublist):
                print 'BBBBBB'+str(element)
                yield element
    except TypeError:
        print 'CCCCCC'+str(nested)
        yield nested


经过上面这个测试程序代码
测试[1,[2,3],[23,2]]和[[[[[4]]]]]
这两个例子,根据输出的调试语句可以大概窥出原理:
先是把第一个列表分离,然后分离每个分离后的列表,当为数字的时候就yield起来,这样递归加循环一层一层的剥去列表

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-08-12 16:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-418966-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020942 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved