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

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

CodeMDD.io

Как сделать список списков плоским в 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.

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

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

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

Вы увидите, что выводит [9, 3, 8, 3, 4, 5, 2, 8, 6, 4, 3, 1, 1, 0, 4, 5], что и ожидалось. Вы успешно сделали список списков плоским с помощью цикла for и метода .extend().


Теперь, когда вы знаете, как сделать список списков плоским в Python с помощью цикла for и метода .extend(), вы можете продолжить изучение других методов и инструментов, которые предлагает язык Python для этой задачи. Например, вы можете использовать генераторы списка (List Comprehensions), стандартную библиотеку Python, встроенные функции и другие пакеты, такие как numpy для обработки списков в контексте научных вычислений.

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

Заключение

В этой статье вы узнали, как сделать список списков плоским в Python. Вы изучили процесс и несколько подходов, в том числе использование цикла for и метода .extend() для перебора и добавления элементов в новый плоский список. Вы также узнали о других инструментах, которые вы можете использовать для этой задачи, таких как генераторы списка, стандартная библиотека Python и пакет numpy для научных вычислений.

Надеемся, что эта статья была полезной и помогла вам в понимании и применении понятия сплошного списка в Python. Продолжайте практиковаться и применять эти методы в своих проектах, чтобы стать более уверенным и опытным программистом Python. Удачи!