Метод 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(). Эти методы обеспечивают гибкость и удовлетворяют различным стилям и требованиям программирования. Используя эти методы, вы можете легко сгладить вложенные списки и упростить задачи обработки данных.