这是一种字符串友好的递归方法:
nests = [1, 2, [3, 4, [5],['hi']], [6, [[[7, 'hello']]]]]
def flatten(container):
for i in container:
if isinstance(i, (list,tuple)):
for j in flatten(i):
yield j
else:
yield i
print list(flatten(nests))
返回:
[1, 2, 3, 4, 5, 'hi', 6, 7, 'hello']
请注意,这并不能保证速度或开销的使用,但是说明了一种递归解决方案,希望会对您有所帮助。