Раскрытие вложенных списков: как преобразовать список списков в плоский одномерный список

Метод 1: использование List Comprehension
List Comprehension — это краткий и мощный метод в Python, который позволяет нам создавать новые списки на основе существующих. Мы можем использовать понимание списка, чтобы сгладить список списков:

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = [item for sublist in nested_list for item in sublist]
print(flat_list)

Выход:

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

Метод 2: использование модуля itertools
Модуль itertools в Python предоставляет набор быстрых и эффективно использующих память инструментов для работы с итераторами. Мы можем использовать функцию chain.from_iterable()из itertools, чтобы сгладить вложенные списки:

from itertools import chain
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = list(chain.from_iterable(nested_list))
print(flat_list)

Выход:

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

Метод 3: использование рекурсии
Рекурсия — это метод, при котором функция вызывает саму себя для решения меньшей части проблемы. Мы можем определить рекурсивную функцию для выравнивания вложенных списков:

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
nested_list = [[1, 2, 3], [4, [5, 6]], [7, 8, [9]]]
flat_list = flatten_list(nested_list)
print(flat_list)

Выход:

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

Метод 4: использование функции sum()
Функция sum()в Python может использоваться для объединения списков. Мы можем использовать эту функцию вместе с пониманием списка, чтобы сгладить вложенные списки:

nested_list = [[1, 2, 3], [4, [5, 6]], [7, 8, [9]]]
flat_list = sum(nested_list, [])
print(flat_list)

Выход:

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

В этой статье мы рассмотрели различные методы преобразования списка списков в плоский одномерный список. Мы рассмотрели такие методы, как использование понимания списков, модуль itertools, рекурсию и функцию sum(). Эти методы обеспечивают гибкость и удовлетворяют различным стилям и требованиям программирования. Используя эти методы, вы можете легко сгладить вложенные списки и упростить задачи обработки данных.