【问题标题】:Retrieving invalid index to scalar variable error while accessing array content访问数组内容时检索到标量变量的无效索引错误
【发布时间】:2020-08-24 12:03:04
【问题描述】:

我正在运行下面的代码,我检索到一个错误。

def partition():

  TE = m_latency()
  TC = c_latency()
  TU = []
  for k in range(1, 10):
    TU = output(k)
    print(TU)
  N = 9
  SUMS = [0] * N
  for j in range(N):
    for i in range(1, j + 1):
        SUMS[j] += TE[i]
    for k in range(j - 1, N + 1):
        SUMS[j] += TC[k]
    SUMS[j] += TU[j]
  return min(SUMS)

当我运行上面的代码时,我得到了下面的错误。

 SUMS[j] += TU[j] IndexError: invalid index to scalar variable

【问题讨论】:

  • TU 不是数组。也许TU = output(k) 应该是TU.append(output(k))

标签: python arrays python-3.x list


【解决方案1】:

当您执行TU = output(k) 时,您替换 TU 变量为output() 返回的任何内容,它不再是一个数组/列表。

您可以在循环中使用 TU[k] 代替:

def partition():

  TE = m_latency()
  TC = c_latency()
  TU = []
  for k in range(1, 10):
    TU[k] = output(k)
    print(TU[k])
  N = 9
  SUMS = [0] * N
  for j in range(N):
    for i in range(1, j + 1):
        SUMS[j] += TE[i]
    for k in range(j - 1, N + 1):
        SUMS[j] += TC[k]
    SUMS[j] += TU[j]
  return min(SUMS)

【讨论】:

    猜你喜欢
    • 2020-05-17
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多