如何调试" IndexError:列表索引超出范围"?

时间:2017-04-06 19:42:04

标签: python

我得到" IndexError:列表索引超出范围"来自

buffer.append(data[data_index])

我的代码如下:

data_index = 0
def generate_batch(batch_size, num_skips, skip_window):
  global data_index
  assert batch_size % num_skips == 0
  assert num_skips <= 2 * skip_window
  batch = np.ndarray(shape=(batch_size), dtype=np.int32)
  labels = np.ndarray(shape=(batch_size, 1), dtype=np.int32)
  span = 2 * skip_window + 1  # [ skip_window target skip_window ]
  buffer = collections.deque(maxlen=span)
  for _ in range(span):
    buffer.append(data[data_index])
    data_index = (data_index + 1) % len(data)

1 个答案:

答案 0 :(得分:0)

当索引(在本例中为data_index)大于或等于列表的长度(在本例中为data)时,会引发此错误。可能出现此问题的原因很多(例如输入数据损坏),但最好的起点是在出现错误时打印出len(data)data_index的值。