Я попытался внести изменения в каждый элемент в списке A
на месте и у меня есть два метода: use_list_comprehension(A, length)
и use_plain_loop(A, length)
.Они выполняют одну и ту же операцию над элементами, но дают разные результаты.
Мой вопрос таков: сначала для понимания списка Python создается копия A
, а затем используется эта копия в качестве источника для получения элементов и выполнения операций над ними?
def arrange(A):
length = len(A)
A = use_list_comprehension(A, length) # we get [19, 20, 12, 1, 8]
# A = use_plain_loop(A, length) # we get [19, 95, 12, 476, 2383]
return A
def use_list_comprehension(A, length):
return [ A[i]+A[A[i]]*length for i in range(length) ]
def use_plain_loop(A, length):
for i in range(length):
A[i] += A[A[i]]*length
return A
print(arrange([4,0,2,1,3]))