我有一个二维列表,我想初始化第一行和第一列。行和列的值都应该相同,并且应从0开始并减少-2。这个问题必须很简单,但是我想我对Python的内部运作还不够了解,无法知道它是什么。
我尝试使用普通的for循环,范围,枚举,似乎没有任何方法可以解决问题。
import sys
GAP = -2
queryStrand = ''
subjectStrand = ''
pathMatrix = []
def createMatrix(query, subject):
# Creates matrix full of 0s with extra index
matrix = [[0]*(len(query) + 1)]*(len(subject) + 1)
for i in range(len(matrix)): # Initializes top row
matrix[i][0] = i * GAP
for j in range(len(matrix[0])): # Initializes first column
matrix[0][j] = j * GAP
return matrix
def writeMatrix(matrix):
file = open('output.txt', 'w')
for y in range(len(matrix[0])):
row = ''
for x in range(len(matrix)):
row += str(matrix[x][y])
file.write(row + '\n')
file.close()
预期结果将是这样的第一行和第一列:
0-2-4-6-8-10-12-14-16...
-2 0 0 0 0 0 0 0 0
-4 0 0 0 0 0 0 0 0
-6 0 0 0 0 0 0 0 0
...
相反,第一行初始化循环产生:
-774-774-774-774...
0 0 0 0
0 0 0 0
...
第一列初始化循环产生:
0 0 0 0 0...
-2-2-2-2-2
-4-4-4-4-4
-6-6-6-6-6
...
这也是不正确的,因为它会破坏第一行并删除中间的所有零。