继续离开范围

2024-04-27 05:00:54 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码: *学生证是一本字典

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']
]

我继续得到一个索引超出范围的错误。我做错了什么/我怎样才能纠正它?你知道吗


Tags: 密码字典defmathstudentcomputerlistwork
1条回答
网友
1楼 · 发布于 2024-04-27 05:00:54
work([hours][6])

我不知道你怎么想,但这跟你想的不一样。您可能想要以下内容:

work[hours][5]

第一个问题是,括号导致表达式被解析为“调用对象work”,就好像它是一个函数一样。参数应该通过创建一个1元素列表[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)

相关问题 更多 >