Как легко сплющить список списков в Python?
Как сделать одномерный список из списка списков в Python
Иногда, когда вы работаете с данными, у вас может быть список вложенных списков. Распространенной операцией является сглаживание этого списка в одномерный список в Python. Сглаживание списка включает преобразование многомерного списка, такого как матрица, в одномерный список.
Чтобы лучше проиллюстрировать, что означает сглаживание списка, предположим, что у вас есть следующая матрица числовых значений:
Переменная matrix
содержит список в Python, который содержит четыре вложенных списка. Каждый вложенный список представляет собой строку в матрице. Строки содержат по четыре элемента или числа каждая. Теперь предположим, что вы хотите превратить эту матрицу в следующий список:
Как вы сможете сгладить свою матрицу и получить одномерный список, как в приведенном выше примере? В этом руководстве вы узнаете, как сделать это в Python.
Как сгладить список списков с помощью цикла for
Как можно сгладить список списков в Python? В общем случае для сглаживания списка списков вы можете выполнить следующие шаги явно или неявно:
- Создайте новый пустой список для хранения сглаженных данных.
- Переберите каждый вложенный список или подсписок в исходном списке.
- Добавьте каждый элемент из текущего подсписка в список сглаженных данных.
- Верните получившийся список с сглаженными данными.
Чтобы продолжить с примером matrix
, вот как вы бы перевели эти шаги в код Python, используя цикл for
и метод .extend()
:
Внутри flatten_extend()
вы сначала создаете новый пустой список под названием flat_list
. Вы будете использовать этот список для хранения сглаженных данных, когда извлечете их из matrix
. Затем вы запускаете цикл, чтобы перебрать внутренние, или вложенные списки из matrix
. В этом примере вы используете имя row
, чтобы представить текущий вложенный список.
На каждой итерации вы используете .extend()
для добавления содержимого текущего подсписка в flat_list
. Этот метод принимает итерируемый объект в качестве аргумента и добавляет его элементы в конец целевого списка.
Теперь выполните следующий код, чтобы убедиться, что ваша функция выполняет свою работу:
Вывод:
Теперь у вас есть одномерный список, полученный из списка списков с использованием цикла for
и метода .extend()
.
Continue to next part of the article…