字典
与个人学习信息卡
第九天,我学习了 Python 字典。列表通过位置保存一组内容,而字典为每项数据准备一个名称,让我可以直接根据键找到对应的值。
创建字典并读取内容
字典使用大括号 {},每项由键和值组成,中间使用冒号。不同项目之间使用逗号分隔。
student = {
"name": "陌南",
"age": 18,
"subject": "Python"
}
print(student["name"])
print(student["age"])
print(student["subject"])
列表使用数字下标读取内容,字典使用键读取内容。键就像抽屉上的标签,不需要记住数据处在第几个位置。
添加和修改内容
字典使用同一种写法添加或修改:如果键不存在,就添加新项目;如果键已经存在,就修改原来的值。
student["goal"] = "完成暑假编程计划"
student["subject"] = "Python字典"
print(student)
练习中,我曾把已有的复数键写成单数形式,结果没有修改原值,而是添加了一个新键。这说明键名必须完全一致,哪怕只相差一个字母,Python 也会把它们当作不同标签。
根据键删除内容
列表的 pop() 根据位置删除,而字典的 pop() 根据键删除。它还会把被删除的值返回出来。
removed_age = student.pop("age")
print("删除的年龄是:", removed_age)
print(student)
程序删除了键 "age",并把对应的整数 18 保存到变量 removed_age。
查询某个键是否存在
对字典使用 in 时,默认检查的是键。确认键存在后,才能安全地使用它读取对应的值。
search_key = input("请输入要查询的信息名称:")
if search_key in student:
print("找到,对应内容是:", student[search_key])
else:
print("没有找到对应内容")
输入 goal 时可以找到学习目标;输入已经删除的 age 时则提示没有找到。
使用 items() 遍历键和值
student.items() 会提供字典中的每一组键和值。循环每次取出一组,再分别交给变量 key 和 value。
for key, value in student.items():
print(key, ":", value)
点号表示使用属于这个字典的功能,items() 表示取得全部键值对。key 和 value 不是固定名称,但这样命名最容易看懂它们各自代表什么。
keys() 只取得键,values() 只取得值,而 items() 同时取得键和值。
个人学习信息卡
最后,我从空字典开始,通过输入依次收集称呼、学习天数、编程语言和学习目标,再完整展示并提供按键查询。
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()可以同时遍历键和值
今天开始用名称组织数据。相比只记住位置,字典让每项信息的含义直接写在代码里,也让查询更加清楚。