我想从字典中的列表中获取值?不确定如何访问它?但这是我所做的&我收到了一个错误 TypeError:字符串索引必须是整数,而不是 str
lloyd = {
"name": "Lloyd",
"homework": [90.0, 97.0, 75.0, 92.0],
"quizzes": [88.0, 40.0, 94.0],
"tests": [75.0, 90.0]
}
alice = {
"name": "Alice",
"homework": [100.0, 92.0, 98.0, 100.0],
"quizzes": [82.0, 83.0, 91.0],
"tests": [89.0, 97.0]
}
tyler = {
"name": "Tyler",
"homework": [0.0, 87.0, 75.0, 22.0],
"quizzes": [0.0, 75.0, 78.0],
"tests": [100.0, 100.0]
}
for i in alice:
print i['quizzes']
我正在学习 python,我还有一些疑问如果有人能提供帮助,那将是 gr8 对学习的帮助。在此先感谢。
1) 如何访问键 'homework' 并在列表中求和它的值?
2) 如何访问字典 alice 并对所有键的值求和?家庭作业 + 测验 + 使用 sum() 函数进行测试
3) 如何访问键 'llyod' 并获取列表的 len()?说“作业”
这是我尝试过的,我也遇到了同样的错误:
def average(x):
for a in x:
return sum(a['homework']) / len(a['homework'])
return sum(a['quizzes']) / len(a['quizzes'])
return sum(a['tests']) / len(a['tests'])
如果有人可以消除我对上述 3 个问题的疑虑。
最佳答案
您正在遍历 alice
的键,而不是值。你的 key 是字符串。即使您循环遍历这些值,alice
中的任何值都不能被 'quizzes'
索引。您可以只打印 alice['quizzes']
,但这可能不是您想要的开始。
您想将所有命名字典放入一个“父”字典中:
students = {
"lloyd": {
"name": "Lloyd",
"homework": [90.0, 97.0, 75.0, 92.0],
"quizzes": [88.0, 40.0, 94.0],
"tests": [75.0, 90.0]
},
"alice": {
"name": "Alice",
"homework": [100.0, 92.0, 98.0, 100.0],
"quizzes": [82.0, 83.0, 91.0],
"tests": [89.0, 97.0]
},
"tyler": {
"name": "Tyler",
"homework": [0.0, 87.0, 75.0, 22.0],
"quizzes": [0.0, 75.0, 78.0],
"tests": [100.0, 100.0]
},
}
现在您可以遍历这个字典并访问每个学生的各种键:
for student_data in students.values():
print student_data['quizzes']
注意这里使用 .values()
来循环 just students
字典的值,因为我们不使用 key 在这里。
使用相同的循环来计算您的平均值,但请记住,当遇到 return
语句时,函数结束。您始终可以通过返回元组从函数返回多个值:
def average(student):
homework = ...
quizzes = ...
tests = ....
return (homework, quizzes, tests)
例如,您也可以使用字典。
关于python - 字符串索引必须是整数而不是 str 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18015385/