回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在编写一个简单的练习软件。你知道吗</p>
<pre><code>def check(num, lst):
for i in lst:
if num == i:
return False
else:
lst.append(num)
return True
timelst = []
for i1 in range(1,7):
usednum = [i1]
for i2 in range(1,7):
if not check(i2, usednum):
continue
for i3 in range(1,7):
if not check(i3, usednum):
continue
for i4 in range(1,7):
if not check(i4, usednum):
continue
for i5 in range(1,7):
if not check(i5, usednum):
continue
for i6 in range(1,7):
if not check(i6, usednum):
continue
else:
print(usednum) #print the appending list before actual appending
timelst.append(usednum)
usednum.pop()
break
usednum.pop()
</code></pre>
<p>在运行时,这就是我想要的Timelist:</p>
<pre><code>[[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 6, 5],
[2, 1, 3, 4, 5, 6],
[2, 1, 3, 4, 6, 5],
...
]
</code></pre>
<p>然而,我得到的却是:</p>
<pre><code>[[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 6],
[2, 1, 3, 4, 5, 6],
[2, 1, 3, 4, 5, 6],
...
]
</code></pre>
<p>我真的很困惑,被困了很长时间。我试着在添加“usednum”列表之前打印它,结果它完美地返回了我想要的结果。你知道吗</p>
<pre><code>[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 6, 5]
[2, 1, 3, 4, 5, 6]
[2, 1, 3, 4, 6, 5]
#printed lists while running the program
</code></pre>
<p>但是每次我在执行程序后检查timelist时仍然会出现同样的问题。你知道吗</p>
<p>我在spyder中使用了Python3.7。我的编译器应该没有问题,因为我在ipython上试过运行这个程序,但仍然得到了相同的结果。你知道吗</p>
<p>有人能帮我解决这个问题吗?谢谢!你知道吗</p>