json对象和嵌套的dictve列表。。我想搜索里面所有的“foo”键。
我试图做递归生成器,但函数在第二次调用parse dunno时失败了为什么,我甚至只看到一次'in'输出。看来解释器第二次都不进去了。。帮我明白我哪里错了?在
def parse(d,key):
print('in')
if type(d)==type({}):
if key in d:
yield d[key]
for k in d:
parse(d[k],key)
if type(d)==type([]):
for i in d:
parse(i,key)
Tags:
发电机的工作方式不像协同程序。如果生成器函数递归地调用自身,则递归调用将生成另一个生成器对象。控件不会像在Lua中那样重新输入生成器代码,
yield
不会一次挂起整个生成器调用堆栈。必须迭代返回的生成器对象并生成其元素:在Python3.3中,添加了委派给子生成器的
^{pr2}$yield from
语法,因此代码将简化为以下内容:这样做的优点是可以自动处理
send
,throw
,以及在子生成器上显式循环的一堆边缘情况。在相关问题 更多 >
编程相关推荐