Python 列表嵌套字典

Python 列表嵌套字典

概述

Python 列表是一种可变数据类型,其中每个元素可以是任何 Python 数据类型,包括其他列表或字典。因此,列表嵌套字典也是可行的。

在此文章中,我们将探讨如何创建和处理列表嵌套字典,以及如何访问和修改列表中的字典元素。

创建列表嵌套字典

创建一个包含几个字典的列表非常容易。我们可以像这样创建一个包含两个字典的列表。

my_list = [{'name': 'Jack', 'age': 28}, {'name': 'Jane', 'age': 32}]

这样就创建了一个名为 my_list 的列表,其中包含两个字典。我们可以在列表中添加更多字典,也可以使用循环来动态地创建列表。

employees = []

employee = {'name': 'Jack', 'age': 28, 'position': 'Developer'}
employees.append(employee)

employee = {'name': 'Jane', 'age': 32, 'position': 'Manager'}
employees.append(employee)

employee = {'name': 'Bob', 'age': 45, 'position': 'CEO'}
employees.append(employee)

print(employees)

这段代码创建了名为 employees 的空列表,然后往其中添加了三个字典。最后一行代码输出完整的列表到控制台。

访问和修改列表中的字典元素

访问和修改列表中的字典元素也很容易。我们可以使用列表和字典的下标操作符来访问和修改元素。

my_list = [{'name': 'Jack', 'age': 28}, {'name': 'Jane', 'age': 32}]

# 访问第一个字典的 name 属性
print(my_list[0]['name'])

# 修改第二个字典的 age 属性
my_list[1]['age'] = 33
print(my_list[1]['age'])

第一个 print 语句输出了 Jack,也就是第一个字典的 name 属性。第二个语句将第二个字典的 age 属性修改为 33,然后输出修改后的值。

列表和字典的嵌套和循环

字典和列表的组合可以创建非常复杂的数据结构。例如,我们可以创建一个字典,其中每个键对应一个列表。每个列表中包含一个或多个字典,如下所示。

people = {
    'engineers': [
        {'name': 'John', 'age': 28},
        {'name': 'Jane', 'age': 32},
        {'name': 'Bob', 'age': 45}
    ],
    'salespeople': [
        {'name': 'Jack', 'age': 39},
        {'name': 'Jill', 'age': 33}
    ]
}

# 循环访问所有人的名字和年龄
for group, people in people.items():
    print(f"{group}:")
    for person in people:
        print(f"{person['name']}, {person['age']}")

在这段代码中,我们创建了一个名为 people 的字典。这个字典包含两个键,每个键都对应一个列表,其中包含若干个字典。我们可以使用两个嵌套的 for 循环来遍历整个数据结构,这样可以输出每个人的名字和年龄。

另一个例子:学生成绩单

让我们来看一个更复杂的例子:学生成绩单。假设我们需要记录一群学生的成绩信息。每个学生有一个唯一的 ID,以及多个科目的成绩。我们可以用一个字典来表示学生的信息,其中 ID 和成绩分别表示为键和值。

我们可以用一个列表来保存所有的学生信息。

students = [
    {'id': '001', 'name': 'Jack', 'scores': {'math': 78, 'english': 85, 'computer': 92}},
    {'id': '002', 'name': 'Jane', 'scores': {'math': 62, 'english': 79, 'computer': 88}},
    {'id': '003', 'name': 'Bob', 'scores': {'math': 98, 'english': 90, 'computer': 94}},
    {'id': '004', 'name': 'Alice', 'scores': {'math': 85, 'english': 92, 'computer': 89}}
]

# 计算每个学生的平均分数
for student in students:
    scores = student['scores']
    total_score = sum(scores.values())
    avg_score = total_score / len(scores)
    print(f"{student['name']} (ID: {student['id']}), average score: {avg_score:.2f}")

在这段代码中,我们创建了一个名为 students 的列表,其中包含四个字典。每个字典表示一个学生的信息,包括 ID、姓名和成绩。成绩信息又表示为一个字典,其中包含数学、英语和计算机科学三个键值对。

我们可以使用一个 for 循环来遍历所有学生的信息。对于每个学生,我们可以使用字典下标操作符来访问其 ID、姓名和成绩。然后,我们可以使用字典的 values() 方法获取该学生的所有成绩值,然后使用内置的 sum() 函数计算总分。最后,我们可以通过将总分除以成绩的数量来计算平均成绩,并将其打印到控制台上。

结论

Python 列表嵌套字典是一种方便且常用的数据结构。它允许我们创建复杂的数据结构,以及轻松地表示高维数据。通过本文的介绍,我们学习了如何创建、访问和修改列表嵌套字典,以及如何使用嵌套的列表和字典进行循环。在实际编程中,列表嵌套字典经常用于表示关系型数据,例如数据库表中的记录。熟练掌握这种数据结构,将会使我们的程序更加灵活和高效。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程