当前位置:首页>python>30天学Python|第 7 天:用字典组织真实信息

30天学Python|第 7 天:用字典组织真实信息

  • 2026-09-09 04:00:35
30天学Python|第 7 天:用字典组织真实信息

列表擅长保存一组同类数据,但现实中的信息往往带有明确含义:姓名、城市、年龄和职业。字典可以把这些信息组织起来。

字典使用花括号,以“键:值”的形式保存数据:

person = {    "name": "Linda",    "city": "Shanghai",    "age": 20,    "is_working": True}

其中 "name" 是键,"Linda" 是对应的值。

键应该保持唯一。如果出现相同的键,后面的值会覆盖前面的值。

二、读取字典数据

print(person["name"])print(person["city"])

如果键不存在,方括号写法会触发 KeyError。

更安全的方式是使用 get():

print(person.get("job"))print(person.get("job", "暂未填写"))

第二个参数是键不存在时使用的默认值。

三、新增、修改和删除

新增数据:

person["job"] = "产品经理"

修改数据:

person["age"] = 21

删除数据:

del person["is_working"]

也可以使用 pop():

removed_city = person.pop("city")

四、判断键是否存在

if "name" in person:    print("姓名已经填写")

对字典使用 in 时,默认检查的是键,而不是值。

五、遍历字典

遍历所有键和值:

for key, value in person.items():    print(f"{key}:{value}")

只遍历键:

for key in person.keys():    print(key)

只遍历值:

for value in person.values():    print(value)

六、列表中保存字典

多个结构相同的对象,可以使用“列表套字典”:

students = [    {"name": "小明", "score": 88},    {"name": "小红", "score": 95},    {"name": "小刚", "score": 76}]for student in students:    print(f"{student['name']}:{student['score']}分")

外层列表表示“多个学生”,每个字典表示“一个学生的完整信息”。

七、第一周知识串联

到今天为止,我们已经使用了:

  • • 变量和数据类型保存单个数据
  • • input() 接收用户输入
  • • if 根据规则作出判断
  • • 循环重复处理任务
  • • 列表保存一组同类数据
  • • 字典保存一个对象的多项信息

这些知识已经足够完成一个小型命令行程序。

基础练习

  1. 1. 创建一本图书的字典,包含书名、作者、价格和库存。
  2. 2. 修改价格,增加出版社字段。
  3. 3. 使用 get() 读取可能不存在的折扣字段。
  4. 4. 遍历并输出所有字段。
  5. 5. 创建一个包含三本图书字典的列表。

今日项目:学生成绩管理器

students = []while True:    print("\n1. 添加学生")    print("2. 查看所有学生")    print("3. 查看平均分")    print("4. 退出")    choice = input("请选择功能:").strip()    if choice == "1":        name = input("请输入学生姓名:").strip()        score = float(input("请输入成绩:"))        student = {            "name": name,            "score": score        }        students.append(student)        print("添加成功")    elif choice == "2":        if len(students) == 0:            print("暂无学生数据")        else:            for index in range(len(students)):                student = students[index]                print(f"{index + 1}. {student['name']}:{student['score']:.1f}分")    elif choice == "3":        if len(students) == 0:            print("暂无学生数据")        else:            total_score = 0            for student in students:                total_score += student["score"]            average_score = total_score / len(students)            print(f"平均分:{average_score:.2f}")    elif choice == "4":        print("程序已退出")        break    else:        print("输入无效,请重新选择")

查漏测试

  1. 1. 字典中的键为什么应该唯一?
  2. 2. 方括号读取和 get() 有什么区别?
  3. 3. items() 返回的是什么?
  4. 4. 为什么多个学生适合使用“列表套字典”?
  5. 5. 今天的项目使用了前六天的哪些知识?

第一周复盘

如果你能不看答案完成以下任务,第一周基础就比较稳固:

  1. 1. 接收用户输入并转换数字类型。
  2. 2. 使用条件判断检查成绩范围。
  3. 3. 使用循环重复显示菜单。
  4. 4. 使用列表保存多个学生。
  5. 5. 使用字典保存每个学生的信息。

学完语法不等于掌握编程。把知识组合起来解决问题,才是第一周真正的终点。

最新文章

随机文章