Как переназначить элемент в массиве с цикла for - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть массив массивов с плавающей точкой, который я хочу переназначить с другим значением, используя цикл for, но PyCharm говорит, что новое назначение переменной не используется.

Если у меня есть, скажем:

for i in array:
    i = i * 5

Это скажет, что я неиспользованная переменная.Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Должно быть:

for i in range(len(array)):
    array[i] = array[i] * 5

То, что вы сделали, создали временную переменную "i", которая существует только на каждой итерации цикла, она инициализируется значением элемента из списка, а затемудалено.

Более питонский способ сделать это будет:

array = [i*5 for i in array]
0 голосов
/ 26 сентября 2018

Вам необходимо присвоить значения элементам массива.В противном случае ваш массив останется неизменным.Есть несколько способов.

Используя вашу текущую попытку в качестве отправной точки, вы можете использовать enumerate.С учетом ввода array:

for idx, val in enumerate(array):
    array[idx] = val * 5

Но это не использует векторизацию NumPy.Вы можете просто использовать:

array *= 5
...