Почему эти два фрагмента кода дают разные результаты? Я предполагаю, что понимание списка создает новый список, а не изменяет его назначенную переменную.Учет списка не работает при динамическом изменении списка
import numpy as np
x = np.array([1, 1, 1, 1])
x = [2 + x[0:i] .dot(y[0:i]) for i in range(0, len(x))]
print(x) # returns [2, 3, 5, 8]
x = np.array([1, 1, 1, 1])
for i in range(0, len(x)):
x[i] = 2 + x[0:i] .dot(y[0:i])
print(x) # returns [2, 4, 12, 48]
Да, список осмыслений создает новый список. Почему вы ожидаете, что это будет разрушительно? Обратите внимание, что возвращенный список будет обычным списком python, а не массивом numpy. –
Назначение переменной * никогда не изменяет объект *. Кажется, у вас уже есть ответ ... Я не понимаю, почему вы задали вопрос ... –