如何在索引超出范围时跳过索引 [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
我的矩阵是:
[['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