Пропустить до содержимого

Как использовать: python список списков

[

Как сделать одномерный список из списка списков в Python

Иногда, когда вы работаете с данными, у вас может быть список вложенных списков. Обычная операция - это разворачивание этого списка в одномерный список в Python. Развертывание списка включает преобразование многомерного списка, такого как матрица, в одномерный список.

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

matrix = [
[9, 3, 8, 3],
[4, 5, 2, 8],
[6, 4, 3, 1],
[1, 0, 4, 5],
]

Переменная matrix содержит список в Python, который содержит четыре вложенных списка. Каждый вложенный список представляет собой строку в матрице. Строки хранят четыре элемента или числа каждая. Теперь предположим, что вы хотите превратить эту матрицу в следующий список:

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

Как вы сможете развернуть свою матрицу и получить одномерный список, как показано выше? В этом руководстве вы узнаете, как это сделать на Python.

Бесплатный бонус: Нажмите для скачивания бесплатного примера кода, который показывает и сравнивает несколько способов развертывания списка списков в Python.

Как развернуть список списков с помощью цикла for

Как можно развернуть список списков в Python? В общем случае, чтобы развернуть список списков, вы можете выполнить следующие шаги явно или неявно:

  1. Создать новый пустой список для хранения развернутых данных.
  2. Обойти каждый вложенный список или подсписок в исходном списке.
  3. Добавить каждый элемент из текущего подсписка в список развернутых данных.
  4. Вернуть результирующий список с развернутыми данными.

Чтобы продолжить с примером matrix, вот как вы бы перевели эти шаги в код Python с использованием цикла for и метода .extend():

def flatten_extend(matrix):
flat_list = []
for row in matrix:
flat_list.extend(row)
return flat_list

Внутри функции flatten_extend() вы сначала создаете пустой список с именем flat_list. Вы будете использовать этот список для сохранения развернутых данных при их извлечении из matrix. Затем вы начинаете цикл для обхода внутренних списков в matrix. В этом примере вы используете имя row для обозначения текущего вложенного списка.

На каждой итерации вы используете .extend(), чтобы добавить содержимое текущего подсписка в flat_list. Этот метод принимает итерируемый объект в качестве аргумента и добавляет его элементы в конец целевого списка.

Теперь запустите следующий код, чтобы убедиться, что ваша функция работает.