【问题标题】:Python - List indexingPython - 列表索引
【发布时间】:2025-12-23 15:05:15
【问题描述】:

我正在尝试转换工作的 Matlab 代码。这就是我所拥有的:

d=[0.004398047,0.123]
m=[0.071,0.123]
x=[]
indices=[1,2,3]
for i in indices:
   print(i)
   if d[i]==0.0:
     print (d[i])
     x.append(m[i])
   else:
    print('else',i)
    x.append(m[i]+d[i]* ny.random.normal(0, 0.1, 1))

运行它我得到“IndexError:列表索引超出范围”。为什么会出现这种情况?

【问题讨论】:

  • 列表从 0....0,1,2 开始索引,d 也只有 2 个元素,因此即使使用该修复程序,您也会收到相同的错误
  • 抱歉,我遇到了另一个错误,我忘记从索引中删除第三个元素。我会带着一个更聪明的问题回来(作为儿子,因为我会更聪明一点地醒来)......无论如何,谢谢你的关注。

标签: python list indexing


【解决方案1】:

您的错误在indices 数组中。 for 循环从 0 开始,dm 数组只有 2 个元素。 修改索引数组:

indices=[0,1]

【讨论】:

    【解决方案2】:

    d 的索引范围从01。您正在尝试123

    【讨论】: