[英]TypeError list indices must be integers
我最近开始学习python。 以下代码引发类型错误,表明我不能使用元组作为列表中的索引。 我很确定我使用整数而不是列表来访问我的列表。 错误被抛出到我建立子矩阵的那一行。 你能帮我吗?
Traceback (most recent call last):
File "matrix_input.py", line 44, in <module>
print(contains(matrix, target))
File "matrix_input.py", line 33, in contains
sub_matrix = [row[index:len(target[0])] for row in matrix[i, len(target)]]
TypeError: list indices must be integers, not tuple
这是引发错误的函数:
def sub_array(row, sub_row):
i = 0
index = -1
for idx, val in enumerate(row):
if i >= len(sub_row):
break
elif val == sub_row[i]:
index = idx
i+=1
else:
i = 0
return index if i == len(sub_row) else -1
def contains(matrix, target):
for i in range(len(matrix)):
index = sub_array(matrix[i], target[0])
if index is not -1:
sub_matrix = [row[index:len(target[0])] for row in matrix[i, len(target)]]
print(sub_matrix)
if sub_matrix == target:
return "YES"
return "NO"
matrix[i, len(target)]
尝试访问以元组i, len(target)
为索引的matrix
的项目–而不是整数。 看来您打算使用matrix[i][len(target)]
代替。
您也应该将整数与==
/ !=
进行比较– index != -1
而不是index is not -1
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.