Разворачивание вложенных списков в Python

Beginner

This tutorial is from open-source community. Access the source code

Введение

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

Развернуть список

Напишите функцию под названием spread(arg), которая принимает список в качестве аргумента и возвращает новый список, содержащий все элементы исходного списка, сглаженные. Если элемент исходного списка является списком сам по себе, его элементы должны быть добавлены в новый список по отдельности. Функция не должна изменять исходный список.

Для реализации функции вам нужно пройти по элементам исходного списка и использовать оператор расширения для добавления элементов в новый список. Если элемент является списком, вы должны использовать метод extend(), чтобы добавить его элементы в новый список. Если элемент не является списком, вы должны использовать метод append(), чтобы добавить его в новый список.

def spread(arg):
  ret = []
  for i in arg:
    ret.extend(i) if isinstance(i, list) else ret.append(i)
  return ret
spread([1, 2, 3, [4, 5, 6], [7], 8, 9]) ## [1, 2, 3, 4, 5, 6, 7, 8, 9]

Резюме

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