| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1621 人关注过本帖
标题:请大神解释一下这个函数的解析过程
只看楼主 加入收藏
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
快速回复:请大神解释一下这个函数的解析过程
数据加载中...
 
   



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

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