python中的keyror…

2024-09-30 14:18:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我建立了一个3D数组self.QL={} 然后用0“擦除”数组:

for loop0 in range(50):
    for loop1 in range(50):
        for loop2 in range(self.actions):
            self.QL[loop0, loop1, loop2] = 0

但当我运行程序并试图从数组中获取值时,它会显示错误:

^{pr2}$

在第135行,我有:

def _chooseaction(self, state):
    self.vQ = 0
    self.action = 0
    self.temp = -1000

        for a in range(self.actions):
         self.vQ = self.QL[state[0],state[1],a]
           if self.vQ > self.temp:
             self.temp=self.vQ
             self.action=a

          return self.action

我做错什么了?在


Tags: inself程序actionsforrangeaction数组
1条回答
网友
1楼 · 发布于 2024-09-30 14:18:15

state[1]的值为63,但您仅用0到49的值初始化了它。在

这就是为什么它说键(0,63,0)不存在。在

也许你可以用defaultdict?在

from collections import defaultdict

self.QL = defaultdict(int)

现在自我.QL基本上是一个dict,对于它没有的任何值都是0。在

相关问题 更多 >