Задача: преобразовать список из такого типа [1, [2, 3], 4] в [1, 2, 3, 4]
check_lst = [[[2]], [4, [5, 6, [6], 6, 6, 6]]]
def check(lst):
check_bool = True
out_lst = []
copy_lst = list(lst)
while check_bool:
check_bool = False
for i in copy_lst:
if isinstance(i, list):
check_bool = True
out_lst.extend(i)
else:
out_lst.append(i)
if check_bool:
copy_lst = list(out_lst)
out_lst = []
return out_lst
print check(check_lst)
[2, 4, 5, 6, 6, 6, 6, 6]Лучшее решение
def check(lst):
'convert all elements in lst in one row'
return sum(map(lambda a: check(a) if isinstance(a,(list)) else [a],lst),[])
Комментариев нет:
Отправить комментарий