python - 如何防止 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 级别)回答我或修改我的代码,那将不胜感激,因为离考试时间不多了!
解决方案
您缺少总线 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
推荐阅读
- php - cpanel上传后不支持index.php
- java - 我的应用程序按钮不起作用,handler.java 错误
- java - Lombok 的@Builder/@AllArgsConstructor 如何调用自定义构造函数?
- mysql - phpMyAdmin 不访问会话变量
- java - SpringBoot 应用程序测试中的 @Import 与 @ContextConfiguration
- php - Symfony 中的复合主键
- ios - 在 UIPanGestureRecognizer 更改状态中更改 UIView 的 alpha
- java - Java 10 是否消除了每个循环?
- sql-server - 联合在 SQL Server 中的工作原理(背景)?
- docker - 如何让 docker 网络中的应用程序与外部的应用程序通信