假设Seq1 =“ ACACT” Seq2 =“ AAT” 为什么此代码输出indexOutOfRange
FIRST_ONE ['PLATFORM_CD', 'SYSTEM_NAME', 'DB_NAME', 'TABLE_NAME', 'COLUMN_NAME']
SECOND_ONE ['Hq_Id']
THIRD_ONE ['DB_NAME', 'BU_NAME']
FOURTH_ONE ['DB_NAME', 'TABLE_NAME', 'COLUMN_NAME', 'PII_CD']
FIFT_ONE ['DB_NAME', 'PRIMARY_SYSTEM_NAME']
答案 0 :(得分:2)
由于外部列表的理解将确定行数,该行数等于len(s2)
:
M = [[0 for x in range(s1)] for y in range(s2)]
但是,在分配时,您使用range(s1)
进行行索引编制:
for i in range(s1):
for j in range(s2):
if ....:
M[i][j] = ...
因此,可以颠倒M
的构造顺序,或者颠倒对M[j][i]
的分配顺序。
答案 1 :(得分:0)
这仅仅是因为第二个单词的字母比第一个单词多。
也许您应该这样做:
# before: self.M = [[0 for x in range(s1)] for y in range(s2)]
self.M = [[0 for x in range(s2)] for y in range(s1)]
或者您应该在循环之前检查单词的长度。