Выравнивание и сглаживание списка в Python — получение вложенных подсписков

Существуют следующие способы выравнивания и сглаживания списка в Python:

  1. Использование понимания списка.
  2. Метод itertools.chain().
  3. Использование методов numpy concatenate() и flat().

Термин «выравнивание» в программировании описывает получение списка вложенных подсписков и возврат одного списка со всеми значениями из подсписков, объединенных вместе.

Сведение — это процедура преобразования нескольких коллекций в одну, содержащую все элементы в коллекциях, которые у вас были раньше.

Рекурсивное получение всех элементов текущей коллекции и помещение всего содержимого в одну коллекцию — наиболее распространенная операция в программировании. Объединение всех элементов в одну коллекцию называется «сведением».

Что подразумевается под сглаживанием списка?

Сведение списка означает получение списка вложенных подсписков и возврат одного списка, содержащего все значения подсписков. Во-первых, давайте посмотрим, как сгладить список в программировании на Python.

Способ 1: использовать понимание списка

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

Вы можете использовать понимание списка, чтобы создать новый список, объединив существующий.

Выход

Вы можете видеть, что мы сгладили список.

Понимание списков обеспечивает краткий способ создания списков.

Способ 2: использование itertools

Использование itertools идеально подходит для преобразования двумерного списка в один плоский список. Это связано с тем, что он обрабатывает последовательные последовательности как одну последовательность, последовательно проходя через итерируемый объект, переданный в качестве аргумента.

Выход

И мы получили сглаженный список на выходе.

Хотя itertools — эффективный способ выравнивания списка, он более совершенен, чем последний подход, который мы обсуждали. Это связано с тем, что вы должны импортировать itertools в свой код, который вводит новую зависимость. Кроме того, метод chain() включает в себя распаковку, которую может быть сложно понять.

Способ 3: использование numpy(concatenate() и flat())

Чтобы сгладить список списков в Python, используйте функции np.concatenate() и np.flat().

Numpy предлагает общие операции, в том числе объединение обычных 2D-массивов по строкам или по столбцам. Мы также используем плоский атрибут, чтобы получить одномерный итератор по массиву для достижения нашей цели.

Выход

Вы можете видеть, что мы свели исходный список к сглаженному с помощью методов list(), np.concatenate() и np.flat().

Заключение

Лучший способ сгладить список списков в Python — использовать понимание списков. Он создаст новый плоский список из существующего.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python