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