字典(Dictionary)¶

智能助教

一、什么是字典?¶

字典(Dictionary)是Python中一种非常重要的数据结构,用于存储“键-值对”(key-value pairs)。每个键(key)对应一个值(value),可以快速查找和操作数据。

字典使用大括号 {} 创建,每个键与值之间用冒号 : 分隔,不同键值对之间用逗号分隔。

二、字典的构成¶

一个字典的结构如下:

dict1 = {
    "姓名": "张三",
    "年龄": 20,
    "城市": "北京"
}

在这个字典中:

  • “姓名”、“年龄”、“城市”是键(key)
  • “张三”、20、“北京”是对应的值(value)

字典的键必须是不可变类型(如字符串、数字、元组),值可以是任意类型。

In [2]:
# 创建字典
student = {
    "姓名": "李四",
    "年龄": 21,
    "专业": "历史学"
}

# 访问字典中的值
#print("学生姓名:", student["姓名"])
print("专业:", student["专业"])
专业: 历史学

三、字典的基本操作¶

字典支持以下操作:

  • 增加/修改键值对
  • 删除键值对
  • 遍历字典
  • 判断键是否存在
In [5]:
# 增加或修改键值对
student["年级"] = "大一"  #增
student["年龄"] = 22  # 修改已有值

#print(student)
# # 删除键值对
#del student["专业"]

# # 遍历字典
# for key, value in student.items():
#      print(key, ":", value)

# # 判断键是否存在
if "年级" in student:
      print("年级信息已记录")
年级信息已记录

.keys() 获取键¶

.values()获取值¶

.items()获取键值对¶

In [9]:
# 创建字典
student = {
    "姓名": "李四",
    "年龄": 21,
    "专业": "历史学"
}

# 获取所有键(文科生理解:提取档案袋的标签)
# keys = student.keys()
# print(keys)
# print("\n档案标签:", list(keys))  # 输出:['姓名', '年龄', '年级']

# # 获取所有值
# values = student.values()
# print("档案内容:", list(values))  # 输出:['李四', 22, '大一']

# # 获取键值对(文科生理解:完整档案条目)
items = student.items()
print("完整档案:", list(items))  # 输出:[('姓名', '李四'), ('年龄', 22), ('年级', '大一')]
完整档案: [('姓名', '李四'), ('年龄', 21), ('专业', '历史学')]
In [ ]:
 

四、字典的适用场景¶

字典特别适用于需要“名称-信息”、“编号-内容”等一一对应的场景。

在人文社科领域,常见应用包括:

  • 词典、术语表(“词汇”->“定义”)
  • 人物信息(“姓名”->“出生年份”)
  • 历史事件(“事件名称”->“详细信息”)
In [20]:
# 示例:历史事件信息
event_info = {
    "五四运动": "1919年,北京,学生反帝反封建运动",
    "辛亥革命": "1911年,推翻清朝,建立中华民国"
}

print("五四运动介绍:", event_info["五四运动"])
五四运动介绍: 1919年,北京,学生反帝反封建运动

五、练习题¶

请完成以下练习,并在下面代码框中编写代码:

  1. 创建一个字典,记录一本书的信息(书名、作者、出版年份),并输出所有内容。
  2. 创建一个人物信息字典,添加“国籍”字段并修改“年龄”字段。
  3. 创建一个字典,存储三个国家及其首都,并输出所有国家和首都的信息。
In [10]:
# 练习1:书籍信息
book = {
    "书名": "活着",
    "作者": "余华",
    "出版年份": 1993
}
for key, value in book.items():
    print(key, ":", value)

print(book)
{'书名': '活着', '作者': '余华', '出版年份': 1993}
In [21]:
# 练习2:人物信息
person = {
    "姓名": "鲁迅",
    "年龄": 39
}
person["国籍"] = "中国"
person["年龄"] = 40
print(person)
{'姓名': '鲁迅', '年龄': 40, '国籍': '中国'}
In [12]:
# 练习3:国家与首都
countries = {
    "中国": "北京",
    "法国": "巴黎",
    "日本": "东京"
}
# for country, capital in countries.items():
#      print(country, "的首都是", capital)
# for key in countries.keys():
#     print(key)
for value in countries.values():
    print(v)
中国
法国
日本
In [ ]: