我正在改变for循环中的状态字典,并在每次迭代时将新状态附加到列表中。
在Python中,字典当然是可变的,因此附加到列表中的是对连续变异字典对象的引用。所以最后我得到一个相同重复引用的列表,指向状态的最终版本。
state = {'temp': 21.6, 'wind': 44.0}
state_list = []
for i in range(10):
state['temp'] += 0.5
state['wind'] -= 0.5
state_list.append(state)
有没有办法告诉口译员我希望“通过价值传递”?我能够在追加前的行中构造一个元组或一些可变的元素,并在列表中附加说明元组。我只是想检查这是最好的解决方案。