Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
07 Июн 2024
2 мин
2428

Преобразование списка списков в плоский список в Python

Часто при работе с данными в Python возникает необходимость преобразования списка списков в плоский список. Например, имеется следующий список списков:

Часто при работе с данными в Python возникает необходимость преобразования списка списков в плоский список. Например, имеется следующий список списков:

list_of_lists = [
    [1, 2, 3],
    [4, 5, 6],
    [7],
    [8, 9]
]

Цель состоит в том, чтобы получить плоский список, то есть одномерный список, который будет выглядеть так:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Эта задача может быть решена несколькими способами в Python.

Использование вложенного цикла for

Первый и самый простой способ — это использование вложенного цикла for. Внешний цикл проходит через каждый список в списке списков, а внутренний цикл проходит через каждый элемент этих списков.

flat_list = []
for sublist in list_of_lists:
    for item in sublist:
        flat_list.append(item)

Использование функции sum

Функция sum в Python может использоваться для конкатенации списков. Второй аргумент функции sum является начальным значением. Если начальное значение — пустой список, то функция sum объединит все списки в один.

flat_list = sum(list_of_lists, [])

Использование генератора списков

Генераторы списков — это эффективный инструмент Python для создания списков. Они могут быть использованы для создания плоского списка из списка списков.

flat_list = [item for sublist in list_of_lists for item in sublist]

Использование функции chain из модуля itertools

Модуль itertools в Python содержит функцию chain, которая может быть использована для создания плоского списка из списка списков.

from itertools import chain
flat_list = list(chain(*list_of_lists))

Таким образом, в Python есть несколько способов преобразования списка списков в плоский список. Выбор конкретного метода зависит от конкретной задачи и предпочтений разработчика.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий