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

Как легко и быстро сгладить список в Python?

CodeMDD.io

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

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

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

Python

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

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

Python

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

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

Как выровнять список списков с помощью цикла for

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

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

Для продолжения с примером matrix вот как вы можете перевести эти шаги в код на Python с помощью цикла for и метода .extend():

Python

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. Этот метод принимает итерируемый объект в качестве аргумента и добавляет его элементы в конец целевого списка.

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

matrix = [
[9, 3, 8, 3],
[4, 5, 2, 8],
[6, 4, 3, 1],
[1, 0, 4, 5],
]
flattened_list = flatten_extend(matrix)
print(flattened_list)

Этот код должен вывести [9, 3, 8, 3, 4, 5, 2, 8, 6, 4, 3, 1, 1, 0, 4, 5].