gpt4 book ai didi

Python 索引错误 : list assignment index out of range

转载 作者:太空宇宙 更新时间:2023-11-04 03:54:41 26 4
gpt4 key购买 nike

谁能指出我哪里出了问题?

我被困在 newGrid.setValue(n[k][0], n[k][1], List[k]) 试图提供每个 x/y 的值每个坐标到一个不同的函数中,该函数接受三个参数,x y 和 value。值是打印在网格上某个位置的值,x 和 y 是坐标。

self.listOfRows[x - 1][y - 1] = value 

IndexError: list assignment index out of range

def gridMileage(List):
x = []
y = []
n = []
k = 0
best = 0
while len(List) > 0:
for i in range(len(List)):
x = List[i][0]
y = List[i][1]
n.append([x,y])
if x > best:
best = x
elif y > best:
best = y
newGrid = Grid(best)
while k < 2:
newGrid.setValue(n[k][0], n[k][1], List[k])
k = k + 1
del List[0]
del List[1]
del n[0]
del n[1]
newGrid.setValue(n[0], n[0] + 1, math.sqrt((n[0][0] - n[1][0])**2 + (n[0][1] - n[1][1])**2))
newGrid.setValue(n[1] + 1, n[1], math.sqrt((n[1][0] - n[0][0])**2 + (n[1][1] - n[0][1])**2))
z = len(newGrid.listOfRows)
while z > 0:
print(newGrid.listOfRows[z - 1])
z = z - 1

class Grid:
def __init__(self, n):
self.listOfRows = []
for i in range(n):
row = []
for j in range(n):
row.append('*')
self.listOfRows.append(row)

def setValue (self, x, y, value):
self.listOfRows[x - 1][y - 1] = value

最佳答案

问题是,最终,您似乎输入的列表索引要么太小,要么太大。

根据报错信息,有问题的代码是self.listOfRows[x - 1][y - 1] = value。您可以通过执行 newGrid.setValue(n[k][0], n[k][1], List[k]) 来调用它。问题不可能是 List[k],因为这不是导致堆栈跟踪的原因。

因此,这意味着 n[k][0]n[k][1] 对于 newGrid.listOfRows 来说太大了.

我会通过在该行之前添加打印语句来仔细检查您的代码以检查这两个值,并仔细检查您的网格到底有多大。

因为您似乎唯一向 n 添加任何值的地方是(我想?):

for i in range(len(List)):
x = List[i][0]
y = List[i][1]
n.append([x,y])

...这意味着根本问题最终出在您传入的 List 变量上。

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

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