Изменить значения списка в цикле «for» - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь обрезать значения в массивах.Я нашел функцию np.clip(), и она сделала то, что мне нужно.Однако то, как он изменяет значения массивов в списке массивов, сбивает меня с толку.Вот код:

import numpy as np

a = np.arange(5)
b = np.arange(5)

for x in [a,b]:
    np.clip(x, 1, 3, out=x)

результат

>>> a
array([1, 1, 2, 3, 3])
>>> b
array([1, 1, 2, 3, 3])

Значения a и b были изменены без назначения, в то время как функция np.clip() работает только с x.

С некоторыми вопросами связано, но они используют индекс списка, например Изменение элементов списка в цикле for , Изменение внутри итерационной переменной цикла внутри цикла в Python .

Может кто-нибудь объяснить мне, как функция np.clip() может напрямую изменять значение значений списка.

1 Ответ

1 голос
/ 26 сентября 2019

Это не из-за функции np.clip.Это потому, что вы используете цикл в списке изменяемых, поэтому значение элемента может быть изменено.Вы можете посмотреть здесь Неизменяемые и изменяемые типы для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...