python - 如何修复此 int 在我的代码中不可下标
问题描述
这是我的作业的一个问题。它按降序打印具有最高数字的名称。我像老师在课堂上展示的那样做。但我一直在第 15 行得到 int is not subscriptable。我做错了什么?
供参考的问题:
假设一个列表包含每个学生在嵌套列表形式中连续在 CSE110、PHY111 和 MAT110 课程中获得的分数。您的任务是将课程名称作为用户的输入,并根据在该课程中获得的分数对列表进行排序,以便最终按分数的降序打印学生的姓名,即从获得最高分数的学生那里给收入最低的学生。
例如,列表可能看起来像 lst = [ ["Alan", 95, 87, 91], ["Turing", 92, 90, 83], ["Elon", 87, 92, 80], ["Musk ", 85, 94, 90] ] 其中对于每个嵌套列表,第一个索引包含学生的姓名,第二个索引是 CSE110 课程中获得的总分,第三个索引是 PHY111 分数,第四个索引是 MAT110 分数。
==================================================== ===
Sample Input :
MAT110
Sample Output :
Alan
Musk
Turing
Elon
错误 :
Enter Desired Course Name: PHY111
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-18-b99751889edb> in <module>()
13
14 for i in range(0, len(org_list)):
---> 15 best = org_list[i][index]
16 best_loc = i
17 mod_list = org_list[i]
TypeError: 'int' object is not subscriptable
org_list = [ ["Alan", 95, 87, 91], ["Turing", 92, 90, 83], ["Elon", 87, 92, 80], ["Musk", 85, 94, 90] ]
course = input('Enter Desired Course Name: ')
if course == 'CSE110':
index = 1
elif course == 'PHY111':
index = 2
elif course == 'MAT110':
index = 3
for i in range(0, len(org_list)):
best = org_list[i][index]
best_loc = i
mod_list = org_list[i]
for i in range(i+1, len(org_list)):
if best < org_list[i][index]:
best = org_list[i][index]
best_loc = i
interim = mod_list
org_list[best_loc] = org_list[i]
org_list = interim
for count in range(0, len(org_list)):
print(org_list[count][0])
解决方案
我不确定这个程序应该做什么,但问题出在以下几行:
interim = mod_list
...
org_list = mod_list
您之前从 中提取了一个子列表org_list
,即mod_list
不是嵌套列表,而是["Alan", 95, 87, 91]
用于第一次循环执行。
现在,您用其中一个子列表覆盖org_list
。但是,在下一个循环执行中,您无法使用org_list[i][index]
.
推荐阅读
- javascript - 你能帮我做 JavaScript/JQuery 类的幻灯片作业吗
- java - 在android studio中创建PDF?如何将长文本分成多行
- code-snippets - Sublime Text:如何添加可以执行键盘快捷键的片段
- html - 标题与幻灯片一起消失
- python - Python在没有开罗的情况下将SVG的文本转换为PNG
- python - 如何将 OpenCV Tracker 与 tif 图像一起使用?
- python - 如何使用张量流数据集 (TDFS) 作为张量流模型的输入?
- python - Python Tkinter ttk 条目将“show =”恢复为默认值
- c - C 是否在幕后使用互斥锁处理 STDIN?
- javascript - 在 Raspberypi 4 8gb arm64 上安装 javascript 链代码时超时