Русский
Открыть в Telegram

Пост Немного базы Python. День 8 - Сделать вложенный список плоским

1 марта 2026
P
Python Portal
Немного базы Python. День 8 - Сделать вложенный список плоским Я покажу вам три (3) способа, как можно развернуть двумерный список. В первом методе используется цикл for, во втором используется модуль itertools, а в третьем используется списковое включение (list comprehension). ⚙️ С помощью цикла for: Для этого метода мы используем вложенный цикл for. Внешний цикл проходит по внутренним спискам, а внутренний цикл обращается к элементам во внутренних списках. # In [19]: list1 = [[1, 2, 3],[4, 5, 6]] newlist = [] for list2 in list1: for j in list2: newlist.append(j) print(newlist) [1, 2, 3, 4, 5, 6] ⚙️ С помощью модуля itertools: Функцию itertools.chain.from_iterable() из модуля itertools можно использовать, чтобы развернуть вложенный список. Этот метод может не подойти для списков с глубокой вложенностью. # In [20]: import itertools list1 = [[1, 2, 3],[4, 5, 6]] flat_list = list(itertools.chain.from_iterable(list1)) print(flat_list) [1, 2, 3, 4, 5, 6] Вы можете увидеть, что вложенный цикл был развернут. ⚙️ С помощью list comprehension Если вы не хотите импортировать itertools или писать обычный цикл for, можно просто использовать list comprehension. # In [21]: list1 = [[1, 2, 3], [4, 5, 6]] flat_list = [i for j in list1 for i in j] print(flat_list) [1, 2, 3, 4, 5, 6] List comprehension хорошо подходит для умеренно вложенных списков. Для глубоко вложенных списков он не подходит, так как код становится хуже читаемым. ⚙️ С помощью генераторной функции Можно создать генераторную функцию, которая делает yield элементов из вложенного списка, а затем преобразовать генератор в список. # In [22]: def flatten_generator(nested_list): for sublist in nested_list: for item in sublist: yield item list1 = [[1, 2, 3], [4, 5, 6]] flat_list = list(flatten_generator(list1)) flat_list Out[22]: [1, 2, 3, 4, 5, 6] Метод с генератором подходит для разворачивания больших или глубоко вложенных списков. Это потому, что генераторы экономно расходуют память. 👉 @PythonPortal #100daysofpython
68 · 7.5K ·

Рядом в ленте

PPython PortalШпаргалка по библиотеке Pandas 👉 @PythonPortalPPython PortalНу кто опять накатил питона на принтер ?? 👉 @PythonPortal
это сообщение
PPython Portal😆😆😆 👉 @PythonPortalPPython PortalPython-совет по дизайну: используй @property только для O(1) операций Люди обычно ожидают, что всё, что выглядит как доступ к атрибуту, работает быстро. Не хоче

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем