首页 > 解决方案 > 如何防止 TypeError:列表索引必须是整数或切片,而不是二维数组中的元组?

问题描述

我目前正在做 GCSE 案例研究,我的代码需要帮助。我正在尝试为一组数据制作一个二维数组。

这是代码:

#Array
Days = ["Mon1","Tue1","Wed1","Thu1","Fri1","Mon2","Tue2","Wed2","Thu2","Fri2","Mon3","Tue3","Wed3","Thu3","Fri3","Mon4","Tue4","Wed4","Thu4","Fri4"]
Buses = ["A","B","C","D","E","F"]
BusData = [ [0,0,0,2,2], [4,0,3,4,-2], [-5,0,0,3,4], [-1,8,1,1,-2],  #Bus A
            [0,1,0,0,1], [2,0,0,0,0], [1,0,0,0,2], [0,0,1,0,0],   #Bus B
            [2,0,-1,-1,-2], [-2,-3,-1,0,0], [-2,0,1,1,1], [1,-1,-1,2,-2] #Bus C
            [1,0,0,0,0], [0,0,0,0,0], [2,0,0,0,0], [0,0,0,0,0], #Bus D
            [-1,-1,-1,-2,-4], [-10,-2,0,0,0], [0,1,2,-3,1], [1,3,-1,0,0]  #Bus E
            [0,-5,-5,-5,-4], [-3,-5,0,0,0], [0,-2,-3,1,1], [1,0,0,-2,-5] ] #Bus F

for i in BusData:
    count = 0
    for x in i:
        if x < 0:
            count +=1
    print("Bus {} was late {} times".format(Buses[BusData.index(i)], count))

所以在我运行它之后,我得到了这个错误:

这个错误

所以看起来第 7 行(即#Bus D)有一个错误,我不明白为什么?

如果有人能用简单的东西(GCSE 级别)回答我或修改我的代码,那将不胜感激,因为离考试时间不多了!

标签: pythonpython-3.x

解决方案


您缺少总线 C 和 E 数据末尾的逗号。

此行末尾有一个逗号:

[0,1,0,0,1], [2,0,0,0,0], [1,0,0,0,2], [0,0,1,0,0],   #Bus B

但是这条线没有:

[2,0,-1,-1,-2], [-2,-3,-1,0,0], [-2,0,1,1,1], [1,-1,-1,2,-2] #Bus C

推荐阅读