我用python编写了以下代码。在支票内, 当我更新d[ii][jj]时,编译器似乎有了自己的自由,将下面所有的列条目都设置为1。在
代码:
def checkd(d, level, a, b):
i = len(b)
j = len(a)
print ['0'] + list(a)
for ii in range(i):
for jj in range(j):
if a[jj] == b[ii]:
#print a[jj] +" "+ b[ii] + " Matched."
d[ii][jj] = 1
print b[ii] + "\t" + a[jj] + "\t" + str(d[ii][jj])
print [b[ii]] + [str(m) for m in d[ii]]
return d
a = raw_input("First word:")
b = raw_input("Second word:")
w = input("Size of words to check:")
d = [[0]*len(a)]*len(b)
d = checkd(d, w, a, b)
print d
for x in d : print x
输出:
^{pr2}$正如你所注意到的,这不仅会导致一些随机匹配(d,n,1?!)在“d”行, 返回的2d数组只是函数中最后一行的副本。在
我对Python有一些经验。如果我不是在寻找一个尽可能多的解释?在
谢谢!在
这将生成一个
len(b)
引用的列表,引用同一个len(a)
个零的列表。共创建两个相互关联的列表。在你想做的是:
^{pr2}$int
是不可变的,因此可以安全地复制。在相关问题 更多 >
编程相关推荐