【发布时间】:2017-12-07 17:19:25
【问题描述】:
我在 Python3 中有一个非常奇怪的问题。我有一些代码可以从整数列表中生成一些不同的列表(这完全不相关)。
def get_next_state(state):
max_val = max(state)
max_index = state.index(max_val)
new_state = state
for n in range(max_val + 1):
new_state[max_index] -= 1
new_state[(n + max_index) % len(state)] += 1
return new_state
现在我要做的就是将下一个状态添加到一些保留状态的列表中。这是我的代码:
l = [0, 2, 7, 0]
seen_states = []
for _ in range(10):
print(l)
seen_states += [l]
l = get_next_state(l)
print(seen_states)
由于某种原因,列表l 在我打印时被正确分配,但它没有正确添加到已见状态列表中。请注意,我也尝试过seen_states.append(l),而不是使用+= [l]。有谁知道为什么会这样?
【问题讨论】:
-
你的函数
get_next_state()不应该返回新状态吗? -
嗯,是的,(忘记在此处添加)。现在将更新帖子。
标签: python-3.x list append