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

2024-09-21 01:17:26 发布

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

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

{
    'first_name': 'Toni',
    'last_name': 'Stokes',
    'assignments': [('assignment1', 97), ('assignment2', 85), ('assignment3', 94), ('assignment4', 100)]
}

在获得作业的分数后,我需要将它们相加。我怎么才能只抓住那把钥匙和它所包含的分数呢


Tags: name列表字典条目分数first钥匙last
3条回答

所以,你需要把所有学生的成绩加起来。 这可以通过首先运行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)],[],[…]

假设您有一个类似以下的字典字典:

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 loop可以通过以下方式访问所有键和子字典的键:

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

Result

[('assignment1', 97), ('assignment2', 89), ('assignment3', 94), ('assignment4', 100)]
[('assignment1', 97), ('assignment2', 88), ('assignment3', 94), ('assignment4', 100)]
[('assignment1', 97), ('assignment2', 95), ('assignment3', 94), ('assignment4', 100)]

FOR EDIT 1

for i in students:
    print(f'{students[i]["first_name"]} {students[i]["last_name"]}\n')
    for i,j in students[i]['assignments']:
        print(f'{i}: {j}')

Result:

Toni Stokes
assignment1: 97
assignment2: 89
assignment3: 94
assignment4: 100

Alex Stones
assignment1: 97
assignment2: 88
assignment3: 94
assignment4: 100

Tati Stikes
assignment1: 97
assignment2: 95
assignment3: 94
assignment4: 100

相关问题 更多 >

    热门问题