Python · Day 09

字典
与个人学习信息卡

第九天,我学习了 Python 字典。列表通过位置保存一组内容,而字典为每项数据准备一个名称,让我可以直接根据键找到对应的值。

创建字典并读取内容

字典使用大括号 {},每项由键和值组成,中间使用冒号。不同项目之间使用逗号分隔。

day9.py
student = {
    "name": "陌南",
    "age": 18,
    "subject": "Python"
}

print(student["name"])
print(student["age"])
print(student["subject"])

列表使用数字下标读取内容,字典使用键读取内容。键就像抽屉上的标签,不需要记住数据处在第几个位置。

添加和修改内容

字典使用同一种写法添加或修改:如果键不存在,就添加新项目;如果键已经存在,就修改原来的值。

day9.py
student["goal"] = "完成暑假编程计划"
student["subject"] = "Python字典"

print(student)

练习中,我曾把已有的复数键写成单数形式,结果没有修改原值,而是添加了一个新键。这说明键名必须完全一致,哪怕只相差一个字母,Python 也会把它们当作不同标签。

根据键删除内容

列表的 pop() 根据位置删除,而字典的 pop() 根据键删除。它还会把被删除的值返回出来。

day9.py
removed_age = student.pop("age")

print("删除的年龄是:", removed_age)
print(student)

程序删除了键 "age",并把对应的整数 18 保存到变量 removed_age

查询某个键是否存在

对字典使用 in 时,默认检查的是键。确认键存在后,才能安全地使用它读取对应的值。

day9.py
search_key = input("请输入要查询的信息名称:")

if search_key in student:
    print("找到,对应内容是:", student[search_key])
else:
    print("没有找到对应内容")

输入 goal 时可以找到学习目标;输入已经删除的 age 时则提示没有找到。

使用 items() 遍历键和值

student.items() 会提供字典中的每一组键和值。循环每次取出一组,再分别交给变量 keyvalue

day9.py
for key, value in student.items():
    print(key, ":", value)

点号表示使用属于这个字典的功能,items() 表示取得全部键值对。keyvalue 不是固定名称,但这样命名最容易看懂它们各自代表什么。

keys() 只取得键,values() 只取得值,而 items() 同时取得键和值。

个人学习信息卡

最后,我从空字典开始,通过输入依次收集称呼、学习天数、编程语言和学习目标,再完整展示并提供按键查询。

learning_card.py
profile = {}

profile["name"] = input("请输入你的称呼:")
profile["days"] = int(input("请输入学习天数:"))
profile["language"] = input("请输入编程语言:")
profile["goal"] = input("请输入学习目标:")

for key, value in profile.items():
    print(key, ":", value)

search_key = input("请输入要查询的信息名称:")

if search_key in profile:
    print("查询结果:", profile[search_key])
else:
    print("没有找到这项信息")

输入学习信息后,程序逐项输出字典;查询 language 时,正确返回了 Python

今天真正弄懂了什么

  • 字典使用键和值保存有名称的信息
  • 通过 字典["键"] 读取对应的值
  • 相同写法可以添加新键或修改已有键
  • 键名必须完全一致
  • pop("键") 可以删除并返回对应的值
  • in 默认判断字典中是否存在某个键
  • items() 可以同时遍历键和值

今天开始用名称组织数据。相比只记住位置,字典让每项信息的含义直接写在代码里,也让查询更加清楚。