Это странно, это часть моего моего кода: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
Поскольку у вас есть 'e = d = c', это все тот же объект. Измените один, который вы измените другим ... – dawg