如何在python字典中获取特定键

如何在python字典中获取特定键,python,dictionary,Python,Dictionary,我创建了一个名为学生的列表。在学生中有10个字典条目,每个条目包含3个键和值对。我只想抓住最后一把钥匙。所有10个条目如下所示: { 'first_name': 'Toni', 'last_name': 'Stokes', 'assignments': [('assignment1', 97), ('assignment2', 85), ('assignment3', 94), ('assignment4', 100)] } students = { 'dict1':

我创建了一个名为
学生
的列表。在
学生
中有10个字典条目,每个条目包含3个键和值对。我只想抓住最后一把钥匙。所有10个条目如下所示:

{
    'first_name': 'Toni',
    'last_name': 'Stokes',
    'assignments': [('assignment1', 97), ('assignment2', 85), ('assignment3', 94), ('assignment4', 100)]
}
students = {
'dict1': {
    'first_name': 'Toni',
    'last_name': 'Stokes',
    'assignments': [('assignment1', 97), ('assignment2', 89), ('assignment3', 94), 
('assignment4', 100)]
},
'dict2': {
    'first_name': 'Alex',
    'last_name': 'Stones',
    'assignments': [('assignment1', 97), ('assignment2', 88), ('assignment3', 94), 
('assignment4', 100)]
},
'dict3': {
    'first_name': 'Tati',
    'last_name': 'Stikes',
    'assignments': [('assignment1', 97), ('assignment2', 95), ('assignment3', 94), 
('assignment4', 100)]
}
    #... up to dict10
}

在获得作业的分数后,我需要将它们相加。我如何只获取该键以及它包含的等级?

假设您有一个如下所示的词典词典:

{
    'first_name': 'Toni',
    'last_name': 'Stokes',
    'assignments': [('assignment1', 97), ('assignment2', 85), ('assignment3', 94), ('assignment4', 100)]
}
students = {
'dict1': {
    'first_name': 'Toni',
    'last_name': 'Stokes',
    'assignments': [('assignment1', 97), ('assignment2', 89), ('assignment3', 94), 
('assignment4', 100)]
},
'dict2': {
    'first_name': 'Alex',
    'last_name': 'Stones',
    'assignments': [('assignment1', 97), ('assignment2', 88), ('assignment3', 94), 
('assignment4', 100)]
},
'dict3': {
    'first_name': 'Tati',
    'last_name': 'Stikes',
    'assignments': [('assignment1', 97), ('assignment2', 95), ('assignment3', 94), 
('assignment4', 100)]
}
    #... up to dict10
}
使用
for循环
可以通过以下方式访问所有键和子字典的键:

for i in students:
    print(students[i]['assignments'])
结果

用于编辑1

结果:


所以,你需要把所有学生的成绩加起来。 这可以通过首先运行for循环作为元素(dict)来实现 你在名单上吗 然后,通过使用赋值作为键和后缀,您可以很容易地获得元组 你可以得到分数

for dict_elements in students:
    total_grades = 0
    for elements in dict_elements["assignments"]:
        total_grades += total_grades[-1] # IN THIS CASE LAST INDEX IS GRADE
                     or
        total_grades += total_grades[1]


学生=[{'first_name':'','last_name':'','assignments':[]},{},{}…] 结果=[student.get(列表(student.keys())[-1]),用于学生中的学生]
[('assignment1',97),('assignment2',85),('assignment2',85)],[('assignment1',97),('assignment2',85),('assignment2',85)],[],[…]

你的意思是抓取
赋值
(如果所有子字典的键都是统一的0?@SeyiDaniel是的,这是正确的,你想要10个字典中的最后一个键(即“赋值”)或者每个赋值的键值对(元组)的最后一个键?或者最后一个赋值的最后一个键?…@ApplePie我需要特别得到:'assignments':[('assignment1',97),('assignment2',85),('assignment3',94),('assignment4',100)]然后获取这些值并对它们进行平均,但同时对所有10个条目进行平均,谢谢!现在我有没有办法缩小范围,只获取分数?
total=sum(学生[I]['assignments]]的分数)
然后
'average=total/len(学生[I]['assignments]]
@RootTwo我仍然不知道第一部分到底是什么内容sum@SeyiDaniel,可能不应该在两个for循环中都使用
i
。@GarrettStarkey,如果你看Seyi的编辑,学生[i]['assignments']中i,j的行
迭代赋值列表,并使用tuple unpacking将tuple的第一部分(“assignment1”等)赋值给
i
,将tuple的第二个元素(97、89等)赋值给“j”。我对第一个元素使用
,因为我并不真正关心它(这是Python约定),和第二部分的
等级
()
中的部分是一个生成器表达式,用于生成作业列表中的所有等级。
for dict_elements in students:
    total_grades = 0
    for elements in dict_elements["assignments"]:
        total_grades += total_grades[-1] # IN THIS CASE LAST INDEX IS GRADE
                     or
        total_grades += total_grades[1]