Снимаем внешние слои

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

Примечания

  • 2D-сетка всегда имеет форму прямоугольника или квадрата.
  • Возвращать нужно именно список списков, за исключением ситуации, когда элементов просто нет. В таком случае нужно вернуть пустой список.

Примеры

peel_layer_off([
  ["a", "b", "c", "d"],
  ["e", "f", "g", "h"],
  ["i", "j", "k", "l"],
  ["m", "n", "o", "p"]
]) ➞ [
  ["f", "g"],
  ["j", "k"]
]

peel_layer_off([
  [1, 2, 3, 4, 5],
  [6, 7, 8, 9, 10],
  [11, 12, 13, 14, 15],
  [16, 17, 18, 19, 20],
  [21, 22, 23, 24, 25],
  [26, 27, 28, 29, 30],
  [31, 32, 33, 34, 35]
]) ➞ [
  [7, 8, 9],
  [12, 13, 14],
  [17, 18, 19],
  [22, 23, 24],
  [27, 28, 29]
]

peel_layer_off([
  [True, False, True],
  [False, False, True],
  [True, True, True]
]) ➞ [[False]]

peel_layer_off([
  ["hello", "world"],
  ["hello", "world"]
]) ➞ []

Варианты решений

def peel_layer_off(lst):
    return [i[1:-1] for i in lst[1:-1]]
def peel_layer_off(lst):
    return [[lst[x][y] for y in range(1, len(lst[x])-1)] for x in range(1, len(lst)-1)]
def peel_layer_off(lst):
    l = []
    for sub in lst[1:-1]:
        l.append(sub[1:-1])
    return l
Прокрутить вверх