У меня есть массив чисел с плавающей запятой, который я хочу переназначить с другим значением с помощью цикла for, но PyCharm говорит, что новое назначение переменных не используется.
Если да, скажите:
for i in array:
i = i * 5
Он скажет, что i - неиспользуемая переменная. Что я делаю неправильно?






Вам нужно присвоить значения элементам массива. В противном случае ваш массив останется неизменным. Есть несколько способов.
Используя вашу текущую попытку в качестве отправной точки, вы можете использовать enumerate. Учитывая вход array:
for idx, val in enumerate(array):
array[idx] = val * 5
Но это не использует преимущества векторизации NumPy. Вы можете просто использовать:
array *= 5
Должно быть:
for i in range(len(array)):
array[i] = array[i] * 5
Вы создали временную переменную «i», которая существует только на каждой итерации цикла, она инициализируется значением элемента из списка, а затем удаляется.
Более питонический способ сделать это:
array = [i*5 for i in array]
Он имеет тот же эффект, что и
i0 = array[0]; i0 = i0 * 5; i1 = array[1]; i1 = i1 * 5;..., но отличается отarray[0] = array[0] * 5; array[1] = array[1] * 5;....