在python中将字典值追加到列表
我在将与键“id”一致的学生词典值添加到列表中时遇到问题。非常感谢您的帮助在python中将字典值追加到列表,python,python-3.x,list,dictionary,append,Python,Python 3.x,List,Dictionary,Append,我在将与键“id”一致的学生词典值添加到列表中时遇到问题。非常感谢您的帮助 students = list(); students.append( {'id':12345, 'first_name':'Alice', 'last_name':'Anderson','assignments':[('assignment_1',0),('assignment_2',2), ('assignment_3',3)]}) students.append({'id':22345, 'first_name
students = list();
students.append( {'id':12345, 'first_name':'Alice',
'last_name':'Anderson','assignments':[('assignment_1',0),('assignment_2',2),
('assignment_3',3)]})
students.append({'id':22345, 'first_name':'John',
'last_name':'Sparks','assignments':[('assignment_1',2),('assignment_2',3),
('assignment_3',4)]})
students.append({'id':32345, 'first_name':'Taylor',
'last_name':'Mason','assignments':[('assignment_1',3),('assignment_2',2),
('assignment_3',3)]})
def return_passing(students):
grade_sum = 0
counter = 0
for s in students: #loop thru students
for assignment, grade in s['assignments']:
grade_sum += grade
counter += 1
average = grade_sum / counter
lst = list()
if average >= 2.0:
lst.append((s['id']))
return lst
return_passing(students)
print(return_passing(students))
您在错误的位置初始化东西时遇到了一些问题,因此它们会被重置。评论中对此作了解释:
def return_passing(students):
lst = [] # initialize lst here
for s in students: #loop thru students
grade_sum = 0 # reset these for each student
counter = 0
for assignment, grade in s['assignments']:
grade_sum += grade
counter += 1
# now that we have gone throug all assignments
# compute average
average = float(grade_sum) / counter # convert to float for precision
if average >= 2.0:
lst.append(s['id'])
return lst # return only after you've gone through all students
你有什么错误?我没有错误。我似乎无法获得附加到列表中的值。所以通过考试的学生是:2234532345对吗?很好的解释!非常感谢。