1、递归与生成器
题目内容:
1. 编写函数,实现功能:将[1,2,[3,[4,5]],6,[7,]] 转换成[1,2,3,4,5,6,7]
2. [1,2,[3,[4,5]],6,[7,]] 用生成器将其生成[1,2,3,4,5,6,7]
解法一(递归):
def new_lst(l):
r = []
for i in l:
if type(i) is list:
r+=new_lst(i)
else:
r.append(i)
return r
解法二(递归)
def get_new_lst(lst):
if type(lst) is list:
return [y for i in lst for y in get_new_lst(i)]
else:
return [lst]
解法三(生成器)
def get_new_lst(l):
for i in l:
if type(i) is list:
yield from get_new_lst(i)
else:
yield (i)