[3, 4, [5, 6, 7], 8], 9, [10, 11]]
现在想把它变为:
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
遇到这种问题,肯定有很多人想到用递归和循环来实现...:
def flat(deep_list, result):
for element in deep_list:
if isinstance(element, list):...实际上,如果使用生成器,这个问题就会变得简单很多:
def flat(deep_list):
for element in deep_list:
if isinstance(element...yield和 yieldfrom实现生成器,当我们直接对生成器进行迭代的时候,就得到了结果。...其中, yieldfrom是从Python 3.3开始引入的写法:
yield from x
# 等价于
for g in x:
yield g
所以,当代码运行到
[x for x in