Как изменяются элементы списка Python, если они участвуют в рекурсивных циклах?Python

Программы на Python
Ответить
Anonymous
 Как изменяются элементы списка Python, если они участвуют в рекурсивных циклах?

Сообщение Anonymous »

Эта функция меняет местами все элементы, найденные в списке. Даже внутренние списки меняются местами. Моя проблема в том, что я не понимаю, как Reverse_list сохраняет 7 и 6 после рекурсии. Поскольку после вызова deep_reverse, обратный_лист становится пустым и затем сохраняет обратную сторону внутреннего списка, то есть [5, 4, 3]. Чего я не понимаю, так это того, что после добавления этого элемента обратный_список становится [7, 6, [5, 4, 3]]
def deep_reverse(arr):

# Terminaiton / Base condition
if len(arr) < 1:
return arr

reversed_items = [] # final list to be returned
for item in arr[::-1]:

# If this item is a list itself, invoke deep_reverse to reverse the items recursively.
if type(item) is list:
item = deep_reverse(item)

# append the item to the final list
reversed_items.append(item)
print(reversed_items)

return reversed_items ```

deep_reverse([1, 2, [3, 4, 5], 6, 7])
#printing the reversed_list
[7]
[7, 6]
[5]
[5, 4]
[5, 4, 3]
[7, 6, [5, 4, 3]]
[7, 6, [5, 4, 3], 2]
[7, 6, [5, 4, 3], 2, 1]


Подробнее здесь: https://stackoverflow.com/questions/726 ... sive-loops
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»