Python小白成长记 · 第5课(下)| 字典 习题
大家好我是星源19岁自学Python的编程小白 。 今天是字典篇的收尾战带大家搞定嵌套字典、漂亮打印、井字棋实战、野餐物品统计最后用习题夯实基础 今日学习内容 “用字典嵌套存复杂数据打印野餐物品表格把字典玩出花”✨ 知识点讲解1️⃣ 嵌套字典和列表概念字典的值可以是列表或其他字典构建复杂数据结构。示例guest_items { A: {苹果: 5, 披萨: 12}, B: {三明治: 3, 苹果: 2}, C: {杯子: 3, 面条: 1} }2️⃣ 项目野餐物品统计目标统计所有客人的食物总数。代码def totalBrought(guests, item): numBrought 0 for k, v in guests.items(): numBrought v.get(item, 0) return numBrought # 定义客人物品 allGuests { A: {苹果: 5, 披萨: 12}, B: {三明治: 3, 苹果: 2}, C: {杯子: 3, 面条: 1} } print(带来的物品总数) print( - 苹果 str(totalBrought(allGuests, 苹果))) print( - 杯子 str(totalBrought(allGuests, 杯子))) print( - 蛋糕 str(totalBrought(allGuests, 蛋糕))) print( - 火腿三明治 str(totalBrought(allGuests, 火腿三明治))) print( - 苹果派 str(totalBrought(allGuests, 苹果派)))3️⃣ 列表到字典的函数目标合并战利品列表到物品清单。代码def addToInventory(inventory, addedItems): for item in addedItems: inventory[item] inventory.get(item, 0) 1 return inventory # 定义初始库存 inv {金币: 42, 绳子: 1} # 定义新增物品 dragonLoot [金币, 匕首, 金币, 金币, 红宝石] # 更新库存 inv addToInventory(inv, dragonLoot) # 打印更新后的库存 print(inv)4️⃣ 漂亮打印上节课补充模块pprint→ 格式化打印复杂数据结构。示例import pprint pprint.pprint(inv)5️⃣ 字典方法上节课补充copy()和deepcopy()import copy cheese spam.copy() # 浅复制 cheese copy.deepcopy(spam) # 深复制✨ 课后习题空字典的代码{}。包含键fow和值42的字典{fow: 42}。字典和列表的主要区别字典无序键可以是任意类型列表有序键只能是整数。spam[foo]触发KeyError。cat in spam.keys()和cat in spam无区别后者是简写。cat in spam.values()检查值是否存在。简洁写法spam.setdefault(color, black)。漂亮打印模块pprint函数pprint()。✅ 总结字典支持嵌套构建复杂数据结构。野餐物品项目用双重循环统计总数。战利品函数用get()安全累加值。pprint模块让字典打印更整齐。复制字典用copy()浅或deepcopy()深。 互动提问 “第一次写嵌套字典时有没有把键名写错导致数据乱套” 留言分享你的“数据结构车祸现场”一起互相安慰