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

How to skip the index when the indexing goes out of range [Python]

我的矩阵是:

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

您可以在 try...except 块中包围您的代码

try:
    result += matrix[j][i]
except IndexError: 
    pass

一种方法是使用 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'

您可以一起跳过索引,因为 python 的 for 循环是一个 for each 循环。

result = ""
for column in row:
    for element in column:
        result += element