如何在索引超出范围时跳过索引[Python]

时间:2018-05-14 15:52:02

标签: python python-3.x python-2.7 matrix-indexing

我的矩阵是:

[['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),它就会抛出错误,而不存在。有没有什么方法可以跳过不存在的元素,如果索引不存在则通过跳过任何条件跳转并再次继续下一个第一行?

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'