-1
它有點混亂,我沒有去列表的任何分配的[]與列表忸怩作態, 仍然在輸出我得到的,列出,同樣,列表coy.I意思是,有當我使用coy = a [:]時會發生這種情況,謝謝。複製一個列表到另一個列表
T=int(input())
for i in range(T):
a=[]
z=[]
f=0
count=0
n,m=map(int,input().split())
for i in range(n):
a+=[list(map(int,input().split()))]
coy=a[:]
print(coy,'coy')#debug
print(a,'a')#debug
while(f==0):
for i in range(n):
for j in range(m):
if i==0 and j==0:
coy[0][0]=max(a[i][j+1],a[i+1][j+1],a[i+1][j])
elif i==0 and j==m-1:
coy[i][j]=max(a[i][j-1],a[i+1][j],a[i+1][j-1])
elif i==n-1 and j==0:
coy[i][j]=max(a[i][j+1],a[i-1][j],a[i-1][j+1])
elif i==n-1 and j==m-1:
coy[i][j]=max(a[i-1][j],a[i][j-1],a[i-1][j-1])
elif j==0:
coy[i][j]=max(a[i][j+1],a[i-1][j],a[i+1][j],a[i-1][j+1],a[i+1][j+1],)
elif j==m-1:
coy[i][j]=max(a[i][j-1],a[i-1][j],a[i-1][j-1],a[i+1][j],a[i+1][j-1])
elif i==0:
coy[i][j]=max(a[i][j-1],a[i+1][j],a[i+1][j-1],a[i][j+1],a[i+1][j+1])
elif i==n-1:
coy[i][j]=max(a[i][j-1],a[i-1][j-1],a[i-1][j],a[i-1][j+1],a[i][j+1])
else:
coy[i][j]=max(a[i][j-1],a[i-1][j],a[i-1][j-1],a[i+1][j],a[i+1][j-1],a[i][j+1],a[i-1][j+1],a[i+1][j+1])
print('inside else','coy',coy,'a',a)#debug
if(coy==a):
print(coy,'coy')#debug
print(a,'a')#debug
count=0
break
for x in range(n):
print('*')#debug
z+=set(copy[x])
print(z)
if len(set(z))==1:
f=1
a=copy[:]
count+=1
print('**********')#debug
print(count)
我已經使用了一些打印語句用於查看流量;而且,列出的值,列表靦腆指標,分配過程中被改變了在理想情況下不應該。
兩個列表「一」和‘忸怩’具有不同的ID。 – dodo
看看在Python列表淺層副本,並深層複製的答案。[表副本1](https://stackoverflow.com/questions/8350750/Python的副本列表-問題),[列表COPY2(https://stackoverflow.com/questions/6993531/copy-list-in-python) – voidpro