Извлечение списков из списка в Python: подробное руководство

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

Метод 1: Построение списка
Построение списка — это краткий и мощный способ извлечения списков из списка. Он позволяет применять условие при переборе элементов исходного списка.

original_list = [1, 2, [3, 4], [5, 6], [7, 8, 9]]
extracted_lists = [sublist for sublist in original_list if isinstance(sublist, list)]
print(extracted_lists)

Выход:

[[3, 4], [5, 6], [7, 8, 9]]

Метод 2: цикл for
Используя цикл for, вы можете перебирать каждый элемент исходного списка и проверять, является ли он списком. Если да, добавьте его в новый список.

original_list = [1, 2, [3, 4], [5, 6], [7, 8, 9]]
extracted_lists = []
for sublist in original_list:
    if isinstance(sublist, list):
        extracted_lists.append(sublist)
print(extracted_lists)

Выход:

[[3, 4], [5, 6], [7, 8, 9]]

Метод 3: функция фильтра
Функция filter()может использоваться для извлечения списков из списка на основе заданного условия. В этом случае условие проверяет, является ли элемент списком.

original_list = [1, 2, [3, 4], [5, 6], [7, 8, 9]]
extracted_lists = list(filter(lambda x: isinstance(x, list), original_list))
print(extracted_lists)

Выход:

[[3, 4], [5, 6], [7, 8, 9]]

Метод 4: рекурсивная функция
Если список содержит вложенные списки и вы хотите извлечь все подсписки на любой глубине, вы можете использовать рекурсивную функцию.

def extract_lists(lst):
    result = []
    for element in lst:
        if isinstance(element, list):
            result.append(element)
            result.extend(extract_lists(element))
    return result
original_list = [1, 2, [3, 4], [5, [6, [7, 8]]]]
extracted_lists = extract_lists(original_list)
print(extracted_lists)

Выход:

[[3, 4], [5, [6, [7, 8]]], [6, [7, 8]], [7, 8]]

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