Найти тему
С любовью о Python

Легкий способ выпрямить список (flatten list)

Designed by Freepik
Designed by Freepik

Рано или поздно вы, скорее всего, столкнетесь с задачей (не будем называть это проблемой): как преобразовать вложенные списки в 1 "выпрямленный".

Рассмотрим, как это сделать, на паре примеров.

Метод sum()

Допустим, изначальный список выглядит так:

list_1 = [[1, 2, 3], [4, 5, 6]]

А нам бы хотелось видеть его без вложенностей:

[1, 2, 3, 4, 5, 6]

На помощь может прийти не самый очевидный способ - метод sum

>>> list_1 = [[1, 2, 3], [4, 5, 6]]
>>> sum(list_1, [])
[1, 2, 3, 4, 5, 6]

Очень лаконично и быстро мы получили нужный результат.

List comprehension

Рассмотрим еще 1 решение с помощью list comprehension, изначальный список тот же:

>>> list_1 = [[1, 2, 3], [4, 5, 6]]
>>> [item for nested in list_1 for item in nested]
[1, 2, 3, 4, 5, 6]

Стоит отметить, что код все так же читаем, а кроме этого, списочные выражения всегда быстро работают.

Вариантов решений может быть много, все их рассматривать не будем.

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

***

Присоединяйтесь ко мне в Telegram: https://t.me/python3_with_love. Там есть все, и читать код намного удобнее.