Курс 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. Переворот строки
  2. Обработка исключений в Python 3
  3. Перевод текста с Python Translator
  4. Определение наиболее частого элемента с помощью collections.Counter
  5. F-строки в Python
  6. Работа с многоуровневыми словарями в Python
  7. Библиотека Emoji: использование смайлов в Python
  8. Операции с массивами в NumPy
  9. Блок try…finally в Python
  10. Получение локальных переменных в Python
  11. Частичное совпадение пользовательского ввода в Python 3.10
  12. Сравнение строк в Python
  13. Модуль sys: основы
  14. Библиотека itertools: объединение списков
  15. Работа с итераторами в Python
  16. Работа с PosixPath() в Python
  17. Создание словарей в Python
  18. Управление памятью в Python
  19. Создание списка дат
  20. Распаковка аргументов в Python
  21. Управление мышью и клавиатурой с Pyautogui
  22. Декораторы в Python
  23. Декодирование строк в Python
  24. Функция product() из itertools
  25. Инверсия списка/строки в Python
  26. Поиск уникальных элементов строкой в Python
  27. Управление импортом в Python
  28. Транспонирование 2D-массива с помощью zip
  29. Цикл for в Python
  30. Изменение списка срезом
  31. Использование *args
  32. Непрерывная проверка в Python
  33. Получение ID процесса
  34. Имена объектов в Python
  35. Виртуальное окружение Python
  36. Функции в Python
  37. Создание словаря в Python
  38. Декоратор Property в Python
  39. Наследование в программировании
  40. Безопасные SQL-запросы в Python 3.11
  41. Метод lt для сортировки объектов
  42. Работа с контекстным менеджером Pool
  43. Обработка элементов в Python
  44. Работа со строками в Python
  45. Многопоточность и асинхронное программирование в Python

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