我的矩阵是:
[['f', 'e', 'e', 'd'], ['t', 'h', 'e', 'd'], ['o', 'g']]
代码:
for i in range(cols):
result = ""
for j in range(rows):
result += matrix[j][i]
temp.append(result)
return(" ".join(temp))
当我运行需要逐行捕获元素的循环时,一旦到达最后一行中的元素(row = 3,col = 3),它就会抛出错误,而不存在。有没有什么方法可以跳过不存在的元素,如果索引不存在则通过跳过任何条件跳转并再次继续下一个第一行?
答案 0 :(得分:2)
你可以一起跳过索引,因为for循环的python是每个循环的。
result = ""
for column in row:
for element in column:
result += element
答案 1 :(得分:0)
您可以尝试将代码包围起来......除了块
try:
result += matrix[j][i]
except IndexError:
pass
答案 2 :(得分:0)
一种方法是使用try-except
以您想要的任何方式处理异常(IndexError)。但是你要做的是连接每个子列表中的字符,这些字符可以像列表理解一样以更加pythonic的方式完成。
In [1]: a = [['f', 'e', 'e', 'd'], ['t', 'h', 'e', 'd'], ['o', 'g']]
In [2]: [''.join(sub) for sub in a]
Out[2]: ['feed', 'thed', 'og']
对于最终结果,您可以使用另一种join
方法:
In [3]: " ".join([''.join(sub) for sub in a])
Out[3]: 'feed thed og'