Так что в основном у меня проблемы с пониманием этих двух концепций. Я гуглил в течение 2 дней и играл с этими двумя, чтобы создать какую-то картинку для себя, но все еще похоже, что я не совсем все понимаю. Насколько я понимаю, isinstance используется как основа рекурсии, если вам нужно работать с многоуровневым списком, и он возвращает true или false в зависимости от того, является ли элемент? относится к указанному типу. Дело в том, что я знаю его определение, но я просто не могу заставить себя понять, как он на самом деле работает, чтобы на самом деле его использовать. Я подумал, что могу привести пример кода, и, возможно, кто-то из вас сможет подробно объяснить, как работает функция во всех деталях. Вот:
def first_and_last(a):
if not (isinstance(a,list)):
return a
elif a == []:
return []
else:
return [first_and_last(a[0]), first_and_last(a[-1])]
print(first_and_last([[1, 2, 3, [3, 3, 4, 5]], 6, 7, 7]))
По сути, этот код используется учителем, но идея кода состоит в том, чтобы возвращать первый и последний элемент каждого уровня списка.