Я пытаюсь написать код для настройки переменных в моей шахматной программе, и я обнаружил, что этот код не выполняет то, что я ожидаю от него вообще.Изменение переменной в списке не влияет на список
import random
# Knight value, bishop value, rook value, queen value
values = [300, 300, 500, 900]
e1vals = values
e2vals = values
# Add a gaussian distributed random number to it
deltas = []
for i in range(0, len(values)):
x = random.gauss(0, 20)
deltas.append(x)
for i in range(0, len(values)):
e1vals[i] = values[i] + deltas[i]
e2vals[i] = values[i] - deltas[i]
print(e1vals)
print(e2vals)
Наглядно код здесь нужно просто добавить или вычесть значения в дельтах до e1vals и e2vals, но вместо этого он не делает каких-либо изменений, кроме литья значений с плавающей точкой.
Я использую Python 3.5.1, если это имеет значение.
@GWW Нет, я указываю, что добавление к переменным списка не меняет список. – ZirconiumX
@ ZirconiumX Точно, см. Обман и создайте новую копию списка, используя 'e1vals = values [:]'. –
@ Zirconium 'e1values = values [:]' и 'e2values = values [:]' Предполагая, что 'e1vals' должен быть' e1values' и т. Д. –