这是我的代码: * Student_IDs是字典
def avg_GPAwork(work_choice):
work = []
work = list((Student_IDs.values()))
print(work)
for hours in range(len(work)):
student_hours = work([hours][6])
print(student_hours)
以下是工作:
[
['Childs, Julia', '9939456', '12/12/1993', 'Computer Science', '3.89', '8'],
['Gaga, Lady', '7733469', '10/10/1980', 'Computer Science', '1.20', '40'],
['Joe, Billy', '80978632', '01/10/1992', 'Undeclared', '2.4', '25'],
['Armstrong, Lance', '0034728', '07/21/1993', 'Computer Science', '3.47', '10'],
['Cronkite, Walter', '4357349', '10/02/1992', 'Math', '3.21', '0'],
['Williams, Serena', '8453392', '02/14/1994', 'Math', '3.09', '5'],
['Harmond, Josh', '30145692', '12/03/1994', 'Biology', '3.9', '0'],
['Pawlakos, Eric', '1234567', '05/23/1993', 'Statistics', '3.8', '8']
]
我继续得到索引超出范围错误。我做错了什么/我该如何解决?
答案 0 :(得分:2)
work([hours][6])
我不知道你的想法是什么,但它没有做你想的。您可能想要以下内容:
work[hours][5]
第一个问题是你的括号导致表达式被解析为“调用对象work
就像它是一个函数一样。该参数应该通过创建一个单元素列表来确定[hours]
,然后将元素放在位置6“。
第二个问题是索引从0开始,所以如果你想要第6个元素,那就是索引5。
注意:range-len迭代几乎不是一个好主意。如果要迭代列表的元素,请直接执行:
for item in work:
student_hours = item[5]
print(student_hours)
或者更好的是,废弃函数的前半部分并直接迭代Student_IDs.values()
:
for item in Student_IDs.values():
student_hours = item[5]
print(student_hours)