如何使用Python中的列表迭代矩阵?

时间:2017-10-09 18:51:58

标签: python arrays matrix indexing

我使用列表在Python中创建一个矩阵。我有两个字; s和t。我应该做一个'框架'将数字0-len(单词)作为行和列,并检查单词的字母是否匹配。如果是,我必须输入位于第-1行和第1列的数字(因此矩阵的左上角)。如果它不匹配,我必须取三个周围数字中最小的一个并加1并将其放在该位置。

我设法制作框架并检查匹配,但我不知道如何达到'左上角的数字和三个周围的数字。所以现在我只有0匹配,8匹配不匹配。你能说出如何把正确的数字放在这些地方吗?谢谢!

编辑以澄清: 例如,在位置I [1] [1]中,我比较s [0]和t [0]。 如果它们是相同的,我将数字放在位置I [0] [0]那里。所以该位置的左上角数字为0。

如果它们不相同,我将位置I [0] [0]的数字与右下两个数字进行比较,取最小数字,加1,并将其放在位置I [1] [1 ]。

然后我以这种方式迭代矩阵,直到它满了。

I=[]
s = 'abcd'
t = 'abdd'

n = len(s)+1
m = len(t)+1

for row in range(n):
    new_row= list()
    for column in range(m):
        if row==0:
            new_row.append(column)    
        elif column ==0:
            new_row.append(row)      
        elif s[row-1]==t[column-1]:      
            new_row.append(0)        
        elif s[row-1]!=t[column-1]:
            new_row.append(8)       

    I.append(new_row)

print(I)

0 个答案:

没有答案