我一直在尝试编写一些代码来调整我的国际象棋程序中的变量,我发现这段代码没有按照我的期望去做。
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,但是除了将值转换为float之外,它不会做任何改变。
如果这有任何区别,我正在使用Python 3.5.1。
答案 0 :(得分:1)
问题在于e1values
和e2values
是指相同的列表。因此,您的所有代码都会为列表中的每个项目添加一个值,然后再次减去它,为您留下原始值。