gpt4 book ai didi

python - 索引错误 : string index out of range -

转载 作者:行者123 更新时间:2023-11-28 22:23:43 25 4
gpt4 key购买 nike

def find_starman(board):
row_number = 0
column_number = 0

for star in board:
for j in range(len(board):
for i in range(len(board):
if star[j][i] == '*':
j += 1
i += 1
return [j,i]

我不知道,每次我运行程序时,它都说超出范围?我怎样才能解决这个问题?(另外,忘记说问题了,当 if 找到 "*"时返回 j+1 和 i+1 )

最佳答案

对于 for 循环,您不需要在循环体中递增迭代器,因为它会在每次循环后自动更新为新值(在本例中,递增 1,因为您正在分配它以迭代 range,步长为 1)。

换句话说,这些行是不必要的:

j += 1
i += 1

此外,从您编辑的问题来看,您似乎想要返回找到的 * 的坐标 (i+1, j+1)。在那种情况下:

1) 如果你只想返回你能找到的第一个 * 的坐标,并立即退出函数,你可以这样做:

if star[j][i] == '*':
return (j+1, i+1)

2) 如果您想返回数组中所有 * 的坐标,您可以在构建循环之前为每次运行创建新变量(如空列表)在for循环中,将找到的*i+1j+1存储为子元组/list 到该变量(使用 append)。换句话说,像这样:

found_coordinates = []
for i in range(len(board)):
for j in range(len(board)):
if star[i][j] == '*':
found_coordinates.append((j+1, i+1))

在任何情况下,您的迭代器(ij)要么立即返回,要么存储在另一个对象中,并且不应修改(使用 += 或其他)在 for 循环中。

关于python - 索引错误 : string index out of range -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46858695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com