yield关键字跟递归结合使用
2015-07-12 00:51
253 查看
yield关键字所在的函数其实不是函数,只是generator生成器,所以会出现下面的情况。
def deepvalues(mapping):
for k,v in mapping.items():
if isinstance(v, dict):
deepvalues(v)
else:
yeild v
若输入{1:{1:2},2:{1:3}}会发现deepvalues只会运行一次,不会如预想的那样递归调用多次
将红色部分换成
for i deepvalues(v):
yield i
可解决
def deepvalues(mapping):
for k,v in mapping.items():
if isinstance(v, dict):
deepvalues(v)
else:
yeild v
若输入{1:{1:2},2:{1:3}}会发现deepvalues只会运行一次,不会如预想的那样递归调用多次
将红色部分换成
for i deepvalues(v):
yield i
可解决
相关文章推荐
- Java正则表达式 matchs split replaceAll实例
- 慕课网python基础学习教案(变量和数据类型)
- Linux下SVN安装配置
- Python pypinyin、jieba模块
- java: -source 1.6 中不支持 switch 中存在字符串.....
- Redis内存分配简单分析
- js默认编码方式
- 【Intellij IDEA】eclipse项目导入
- Codeforces Round #311 (Div. 2) E. Ann and Half-Palindrome 字典树
- win7系统激活状态不可用
- MySQL Cluster 核心概念
- (class: org/apache/jasper/runtime/PageContextImpl, method: getELResolver signature: ()Ljavax/el/ELResolver;) Incompatible argument to
- 集成开发环境(IDE)学习笔记系列
- [C++]GCC的C++入门(2012-10-28更新)
- gcc/g++ 常用参数
- 编程语言
- HDU--5281(思路)
- 电脑开机显示器无法显示-原因分析
- TransitionDrawable使用不当导致内存泄露
- 2015071105 - 互联网对出租车的冲击