IndexError:for循环中标量变量的索引无效

时间:2015-12-18 12:19:35

标签: python python-2.7 for-loop indexing append

我有一个数组数组pdf len(pdf) = 300

pdf[0]len(pdf[0]) = 300

的数组

我想要做的是,取sum of pdf[0][50:100]并对pdf[1][50:100]重复相同的操作,依此类推至pdf[300][50:100]

我尝试的是:

for i,a in enumerate(pdf):
    result.append(a[i][50:100].sum())

但我收到错误: 的 IndexError: invalid index to scalar variable

1 个答案:

答案 0 :(得分:2)

如果您只需要构建一个简单的列表,那么List Comprehension就是您的朋友:

result = [i[50:100].sum() for i in pdf]

应该这样做。

在你的for循环中,

apdf[0], pdf[1]...
 i0,1...

所以你引用了pdf[0][0][50:100], pdf[1][1][50:100]...因此跟踪了。

这意味着您也可以将循环更改为:

result = []
for a in (pdf):
    result.append(a[50:100].sum())

...但这就是列表理解的目的:)