Achatar uma lista

Crie uma função que receba uma lista. Essa lista pode conter todos os tipos de valores primitivos, até mesmo outras listas. A função deve retornar uma única lista plana e unidimensional com todos os elementos. Estas são as condições:

  1. Se o item for uma lista, inclua cada item que ela contém, e o seguinte continuará valendo:
  2. Se o item for um valor primitivo, inclua-o como está.

Exemplos

flatten_list([1, 2, [3, [4, 5], 6], 7, 8]) ➞ [1, 2, 3, 4, 5, 6, 7, 8]

flatten_list([1]) ➞ [1]

flatten_list([]) ➞ []