如何编写应该返回嵌套在iterable中的每个值的function
?
这是我想要完成的一个例子:
for i in function([1, 2, [3, 4, (5, 6, 7), 8, 9], 10]):
print(i, end=' ')
预期产出:
1 2 3 4 5 6 7 8 9 10
答案 0 :(得分:13)
Python 2用户有一个内置的任务:
from compiler.ast import flatten
不幸的是,它已在python 3中删除了。你可以自己滚动:
from collections import Iterable
def flatten(collection):
for x in collection:
if isinstance(x, Iterable) and not isinstance(x, str):
yield from flatten(x)
else:
yield x
答案 1 :(得分:6)
带有奇怪限制的家庭作业问题需要有趣的答案
import re
def function(L):
return re.findall("[a-z0-9]+", repr(L))