浅析python 字典嵌套

1. python中字典的基本用法

字典(dictionary),是一种Python中的内置数据类型,用于储存键(key)和值(value)的对应关系。字典中的每对键值对可以看成是一个单独的实体。使用花括号{}将键值对括起来,每个键值对之间用逗号分隔。示例如下:

my_dict = {'name': 'Anna', 'age': 25, 'gender': 'female'}

print(my_dict) # {'name': 'Anna', 'age': 25, 'gender': 'female'}

可以通过方括号加键(key)的方式获取对应的值(value),如果键不存在,则会报错。示例如下:

# 获取值

print(my_dict['name']) # Anna

# 修改值

my_dict['age'] = 26

print(my_dict) # {'name': 'Anna', 'age': 26, 'gender': 'female'}

# 添加键值对

my_dict['city'] = 'Beijing'

print(my_dict) # {'name': 'Anna', 'age': 26, 'gender': 'female', 'city': 'Beijing'}

# 删除键值对

del my_dict['gender']

print(my_dict) # {'name': 'Anna', 'age': 26, 'city': 'Beijing'}

2. 字典嵌套的基本操作

字典中的值不仅可以是字符串、数字、列表等基本数据类型,还可以是字典,称为字典的嵌套。字典的嵌套是一种非常常见的数据结构,它可以使我们更加灵活地组织数据。假设我们有一个存储人员信息的字典,可以再将每个人员信息表示为一个字典,示例代码如下:

person1 = {'name': 'Anna', 'age': 25, 'gender': 'female'}

person2 = {'name': 'Bob', 'age': 30, 'gender': 'male'}

person3 = {'name': 'Cindy', 'age': 28, 'gender': 'female'}

# 将每个人员的信息表示为一个字典

persons = {'person1': person1, 'person2': person2, 'person3': person3}

print(persons)

# 输出

# {'person1': {'name': 'Anna', 'age': 25, 'gender': 'female'},

# 'person2': {'name': 'Bob', 'age': 30, 'gender': 'male'},

# 'person3': {'name': 'Cindy', 'age': 28, 'gender': 'female'}}

我们也可以直接在一个字典中嵌套另一个字典,示例代码如下:

person1 = {'name': 'Anna', 'age': 25, 'gender': 'female',

'contact': {'email': 'anna@example.com', 'phone': '13333333333'}}

print(person1)

# 输出

# {'name': 'Anna', 'age': 25, 'gender': 'female',

# 'contact': {'email': 'anna@example.com', 'phone': '13333333333'}}

可以通过方括号加连续的键获取嵌套字典中的值,示例代码如下:

print(person1['contact']['email']) # 'anna@example.com'

3. 字典嵌套的遍历

3.1 遍历所有键值对

我们可以使用字典的items()方法遍历所有键值对,代码示例如下:

for key, value in person1.items():

print(f'{key}: {value}')

# 输出

# name: Anna

# age: 25

# gender: female

# contact: {'email': 'anna@example.com', 'phone': '13333333333'}

3.2 遍历所有键

我们可以使用字典的keys()方法遍历所有键,代码示例如下:

for key in person1.keys():

print(key)

# 输出

# name

# age

# gender

# contact

3.3 遍历所有值

我们可以使用字典的values()方法遍历所有值,代码示例如下:

for value in person1.values():

print(value)

# 输出

# Anna

# 25

# female

# {'email': 'anna@example.com', 'phone': '13333333333'}

4. 字典嵌套的应用场景举例

4.1 学生成绩管理系统

我们可以使用字典嵌套来实现学生成绩管理系统。假设我们有一些学生,每个学生有姓名、年龄、性别、数学成绩、英语成绩和计算机成绩等信息,我们可以将每个学生的信息存储在一个字典中,并将所有学生的字典存储在一个字典中。示例代码如下:

# 学生成绩管理系统

students = {

'student1': {'name': 'Anna', 'age': 18, 'gender': 'female',

'scores': {'math': 90, 'english': 85, 'computer': 92}},

'student2': {'name': 'Bob', 'age': 19, 'gender': 'male',

'scores': {'math': 80, 'english': 88, 'computer': 85}},

'student3': {'name': 'Cindy', 'age': 20, 'gender': 'female',

'scores': {'math': 95, 'english': 90, 'computer': 88}},

}

# 遍历所有学生的信息

for student_no, student_info in students.items():

print('学生编号:', student_no)

for key, value in student_info.items():

if key == 'scores':

# 遍历学生的成绩信息

print(key + ':')

for subject, score in value.items():

print('\t' + subject + ':', score)

else:

# 遍历学生的基本信息

print(key + ':', value)

print()

以上代码的输出结果如下:

学生编号: student1

name: Anna

age: 18

gender: female

scores:

math: 90

english: 85

computer: 92

学生编号: student2

name: Bob

age: 19

gender: male

scores:

math: 80

english: 88

computer: 85

学生编号: student3

name: Cindy

age: 20

gender: female

scores:

math: 95

english: 90

computer: 88

4.2 产品信息管理系统

我们可以使用字典嵌套来实现一个简单的产品信息管理系统。假设我们有一些产品,每个产品有编号、名称、单价和库存量等信息,我们可以将每个产品的信息存储在一个字典中,并将所有产品的字典存储在一个字典中。示例代码如下:

# 产品信息管理系统

products = {

'product1': {'name': 'iPhone', 'price': 8000, 'stock': 100},

'product2': {'name': 'iPad', 'price': 6000, 'stock': 50},

'product3': {'name': 'iMac', 'price': 12000, 'stock': 20},

}

# 遍历所有产品的信息

for product_no, product_info in products.items():

print('产品编号:', product_no)

for key, value in product_info.items():

print(key + ':', value)

print()

以上代码的输出结果如下:

产品编号: product1

name: iPhone

price: 8000

stock: 100

产品编号: product2

name: iPad

price: 6000

stock: 50

产品编号: product3

name: iMac

price: 12000

stock: 20

5. 小结

本文对Python中字典嵌套的基本用法进行了介绍,包括字典的基本用法、字典的嵌套、字典嵌套的遍历和字典嵌套的应用场景等。字典嵌套是Python中一种非常常见的数据结构,其应用场景非常广泛,包括学生成绩管理系统、产品信息管理系统等。同时,字典嵌套的操作有时也会比较繁琐,需要多次使用方括号加键的方式来获取嵌套字典中的值。因此,在实际工作中,我们应该根据实际需求来合理地使用字典嵌套,并根据具体情况进行优化和简化。

后端开发标签