. Write a recursive definition "make-flat", a function that returns all the elements of an arbitrarily nested list in a single-level list. (MAKE-FLAT ’((A B (Q)) C (D ((E (F)) G) H))) should return (A B Q C D E F G H).

Respuesta :

Answer:

def FLATTEN(l):

  if len(l)==0:

      return []

  if isinstance(l[0], list):

      return FLATTEN(l[0])+FLATTEN(l[1:])

  else:

      return [l[0]]+FLATTEN(l[1:])

l=[['A','B',['R']],'A','C',['A','D',[['A',['B']],'R'],'A']]

print "NESTED LIST: ",l

print "FLATTENED LIST: ",FLATTEN(l)