擅长:python、mysql、java
<p>我认为@avghdev在检查<code>str</code>而不是检查<code>list</code>时犯了一个很大的错误–<code>list</code>是我们希望再次出现的积极场景。在所有其他情况下,我们希望得到普通值</p>
<p>下面,我们使用<code>yield from</code>委托给另一个生成器。在本例中,我们的<code>flatten</code>生成器是递归的,因为它会自动生成。你知道吗</p>
<p>由于这一执行,痛苦和痛苦从程序中消除。你知道吗</p>
<pre><code>def flatten (xs):
for x in xs:
if isinstance (x, list):
yield from flatten (x)
else:
yield x
for x in flatten ([ 1, [ '2', [ 3, [ '4', [ 5, None ]]]]]):
print (x)
# 1
# 2
# 3
# 4
# 5
# None
</code></pre>