37,719
社区成员
发帖
与我相关
我的任务
分享
l=[]
m=[]
m1=[]
m2=[]
t=input().split()
x=int(t[0])
y=int(t[1])
i=0
while i<x:
m1.append(l)
t=input().split()
for val in t:
m1[i].append(int(val))
print(m1)
i=i+1
m1.append([])
不想中途引起未知变化的话,就把具体的值直接赋进去。
或者,用多个变量,如果能分得清的话。让m1 = [l, n, o, p, q]这样...
原因所在:
这一句:m1.append(l) 执行了之后,m1[0]其实是l;
之后l依次追加了三个2:l=[2, 2 ,2]
然后又执行了一次m1.append(l) ,此时m1[0]和m1[1]都是l;
之后l又依次追加了三个2,最终l=[2, 2 ,2, 2, 2, 2]
换句话说,m = [l, l],期间又是对l进行append。
你可以程序中print l看看,l在不断变化。