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