遍历字典时如何修复Python IndexError

时间:2019-03-28 20:51:45

标签: python dictionary for-loop index-error

我的问题类似于一个月前在这里发布的问题:Python IndexError looping through array

我正在使用一个名为Pyrosim的程序来模拟具有进化算法的机器人。在Pyrosim中,我们能够在神经元之间建立突触连接,这正是我的代码所试图做的。

我有两个字典(长度5和8),我需要遍历创建40个突触连接。 其中之一,SN,长度为5,抛出以下错误: IndexError:索引4超出了大小为4的轴0的范围。

我正在遍历SN中的值,那么如何尝试在SN的维度之外进行索引?

要解决此问题,我从for循环的范围中减去1,但现在我缺少SN中的最后一项

def send_synapses(self, sim, wts):
  #prints {0: 0, 1: 1, 2: 2, 3: 3, 4: 4}
  print(self.SN)
  #prints {0: 5, 1: 6, 2: 7, 3: 8, 4: 9, 5: 10, 6: 11, 7: 12}
  print(self.MN)

  print("length of SN ", len(self.SN)) #prints 5
  print("length of MN ", len(self.MN)) #prints 8

  numSynapses = 0
  for i in range (0,len(self.SN)-1): #I shouldn't have to subtract 1
    for j in range (0,len(self.MN)):
      numSynapses += 1
      print(len(self.SN), self.SN)
      sim.send_synapse(source_neuron_id = self.SN[i] , target_neuron_id = self.MN[j] , weight = wts[i,j] )
  print("Num Synapses: ", numSynapses) #prints 32

在一个理想的世界中,我的numSynapses应该打印40张

0 个答案:

没有答案