TypeError:“ int”对象不可下标-我已经研究了几个小时,我不明白为什么它会吐出此错误

时间:2019-05-16 18:45:41

标签: python-3.x

我试图将多个列表嵌套在一个“主”列表中,每当我遍历列表以按顺序将其他列表中的项目添加到主列表中时,就可以用泡菜在另一块中创建保存文件代码(完全与此问题无关),

我找不到其他选择

a = [123456789]
b = [2, 6, "CF"]
c=["Helo", 4567]
d=[3,5,6,4,4,3,5]
e=["345sadf fg", 48736541546]
master = []
for i in range(5):
    master.append([])
#insert items into list - Format = homework, tnotes, pnotes, camau, studentname
for a in range(len(a)):
    master[0].append(a[a])
for b in range(len(b)):
    master[1].append(b[b])
for c in range(len(c)):
    master[2].append(c[c])
for d in range(len(d)):
    master[3].append(d[d])
for e in range(len(e)):
    master[4].append(e[e])
print(str(master))

I would expect:
[[123456789],
 [2,6, "CF"],
 ["Helo",4657],
 [3,5,6,4,4,3,5],
 ["345sadf fg",48736541546]]

1 个答案:

答案 0 :(得分:4)

a中的for a in range(len(a)):从外部作用域遮盖了名称a = [123456789]。因此,当您执行master[0].append(a[a])时, a指的是从a获得的整数 range。在所有其他循环中,所有都发生同样的事情。

因此,a[a](旁注:这很容易引起混淆,因为目前尚不清楚这是指a; Python对此建立了严格的规则)试图索引int例如,带有索引a的{​​{1}},这是没有意义的,因为“ a对象是不可下标的”,因此会出现错误。

您应该以不同的方式命名循环的索引变量。