Курс Python → Преобразование вложенного списка

Для того чтобы сделать список плоским, то есть преобразовать список, состоящий из вложенных списков, в один плоский список, можно воспользоваться следующим подходом. Начнем с создания функции, которая будет принимать в качестве аргумента вложенный список и возвращать плоский список. Например:


def flatten_list(nested_list):
    flat_list = []
    for item in nested_list:
        if isinstance(item, list):
            flat_list.extend(flatten_list(item))
        else:
            flat_list.append(item)
    return flat_list

В данной функции используется рекурсивный подход: мы проходим по каждому элементу вложенного списка, и если элемент является списком, то вызываем функцию flatten_list для этого элемента и расширяем итоговый список. Если элемент не является списком, то просто добавляем его в итоговый список.

Пример использования функции:


nested_list = [1, 2, [3, 4, [5, 6]], 7, [8, [9]]]
flat_list = flatten_list(nested_list)
print(flat_list)
# Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]

В данном примере в переменной nested_list содержится вложенный список, который мы передаем в функцию flatten_list. Результат работы функции сохраняем в переменной flat_list и выводим его на экран. Как видно, вложенный список был успешно преобразован в плоский список.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Декораторы в Python
  2. Работа с контекстными переменными
  3. Создание новых функций через partial
  4. Структуры данных в Python
  5. Итерации в Python
  6. Работа со временем в Python
  7. Измерение времени выполнения
  8. Сравнение объектов в Python
  9. Нахождение хеша для бесконечности и NaN в Python
  10. Асинхронный код в Python
  11. Транспонирование 2D-массива с помощью zip
  12. Отладка в командной строке
  13. Работа с Telegram API на Python
  14. Python: изменяемые и неизменяемые коллекции
  15. Списковые включения в Python
  16. Поиск email
  17. Переворот строки с использованием цикла
  18. Работа с многоуровневыми словарями в Python
  19. Управление мышью и клавиатурой с Pyautogui
  20. Создание вкладок с TKinter
  21. Оператор * в Python
  22. Преобразование чисел в Python
  23. Оформление кода на Python
  24. Потоковый ввод в Python
  25. Многострочные комментарии в Python
  26. Retrying в Python: повторные вызовы
  27. Участие в LP стейкинге Waves
  28. Именованные аргументы в Python
  29. Работа с модулем bisect
  30. Переопределение унарных операторов
  31. Методы __repr__ и __str__ в Python
  32. Функции в Python: создание и вызов
  33. Копирование объектов в Python
  34. Получение текущей даты и времени
  35. Хэш-функции и метод цепочек
  36. Сортировка и обратный порядок
  37. Получение текущего времени в Python
  38. Метод rsub для пользовательских чисел
  39. Импорт модулей в Python 3.12
  40. Функция findall() для поиска вхождений строки
  41. Разделение списка на гнппы
  42. Модуль xkcd: загрузка комиксов
  43. Метод invert для побитового отрицания
  44. Инверсия списка/строки в Python
  45. Функции классификации комплексных чисел
  46. Навыки Python: строки, типы данных
  47. Методы HTTP запросов в Flask
  48. Идентификатор объекта в Python

Marketello читают маркетологи из крутых компаний