-2
这很奇怪,这是一件我我的代码:Python的印刷变量不匹配
def vert(vert):
c=[]
#print b
for i in range(3):
c.append(list(vert[i]))
e=d=c
s=[]
print c
by={0: (1,),1: (0,2),2: (1,)}
boolean=False
for i in range(3):
for j in range(3):
if c[i][j]==0:
boolean=True
print i,j
for k in by[j]:
d[i][j],d[i][k]=d[i][k],d[i][j]
print d
s+=d
d[i][j],d[i][k]=d[i][k],d[i][j]
for l in by[i]:
e[i][j],e[l][j]=e[l][j],e[i][j]
print e
s+=e
e[i][j],e[l][j]=e[l][j],e[i][j]
break;
if boolean :
print s
break;
vert(vertices[0])
输出为:
[[8, 1, 0], [5, 2, 6], [7, 3, 4]]
0 2
[[8, 0, 1], [5, 2, 6], [7, 3, 4]] #d
[[8, 1, 6], [5, 2, 0], [7, 3, 4]] #e
[[8, 1, 0], [5, 2, 6], [7, 3, 4], [8, 1, 0], [5, 2, 6], [7, 3, 4]] #s
这是什么,我不认为应该发生,我添加e和d到s,它们以不同的形式添加,我不希望它成为,任何人都可以看到发生了什么? 我想要的是e和d的形式,他们打印。但是我无法看到如何以正确的形式将它们添加到s中。
'e = d = c' **不**创建副本,它将*相同的列表对象*分配给所有三个名称。 – jonrsharpe 2014-10-16 15:14:13
既然你有'e = d = c',它们都是同一个对象。改变一个你改变另一个...... – dawg 2014-10-16 15:14:45