page contents

Python字典实战:从存储个人信息到统计单词频率,3个场景教会你用

我刚学Python的时候,总觉得字典就是个“存东西的盒子”,无非是把名字和对应信息凑一对放进去,直到后来帮朋友做通讯录、帮自己统计文章单词,才发现这东西藏着好多实用技巧。今天就用3个接地气的场景,带你把字典用透,新手也能跟着做。

attachments-2025-10-g9vKpcHq68e5bb4b09d04.png我刚学Python的时候,总觉得字典就是个“存东西的盒子”,无非是把名字和对应信息凑一对放进去,直到后来帮朋友做通讯录、帮自己统计文章单词,才发现这东西藏着好多实用技巧。今天就用3个接地气的场景,带你把字典用透,新手也能跟着做。

场景1:做个“活的”个人信息表,能查能改还不报错。

之前帮同事做过一个简易通讯录,一开始我直接用 dict = {"张三":"138xxxx1234", "李四":"139xxxx5678"} 存,结果他查个不存在的人,程序直接报错,想改个号码,还得重新写一行代码。后来才明白,字典的核心不是“存”,而是“灵活操作”。

咱们来做个升级款:不仅能存姓名、电话、邮箱,还支持“查询信息、修改电话、新增联系人”,而且查不到人时不报错,会友好提示。

代码很简单,每步都标了注释:

# 1. 先定义一个字典,用嵌套存多类信息(姓名作为外层键,内层存具体信息)

person_info = {    "张三": {"phone": "138xxxx1234", "email": "zhangsan@xxx.com"},    "李四": {"phone": "139xxxx5678", "email": "lisi@xxx.com"}}

# 2. 写个查询功能:查不到人就返回“没找到”,不用try-except

def find_person(name):    # 关键:用get方法,找不到键就返回第二个参数(默认值)    info = person_info.get(name, "未找到该联系人")    print(f"{name}的信息:{info}")

# 3. 写个修改电话的功能:先判断人在不在,在就改,不在就提示

def update_phone(name, new_phone):    if name in person_info:        person_info[name]["phone"] = new_phone  # 嵌套字典修改:外层键→内层键        print(f"{name}的电话已更新为:{new_phone}")    else:        print(f"没找到{name},无法修改")

# 4. 测试一下

find_person("张三")  # 会输出张三的电话和邮箱

find_person("王五")  # 输出“王五的信息:未找到该联系人”

update_phone("李四", "137xxxx9012")  # 李四的电话改成新的

实战小贴士:新手容易犯的错是查不到键就崩溃,记住 dict.get(键, 默认值) 这个组合,比直接写 dict[键] 安全10倍,日常用字典必带这个操作。

场景2:5行代码统计单词频率,比Excel还快。

之前帮同学改英语作文,他想知道自己the、and用了多少次,一开始我俩用Excel一个个数,半小时才弄完。后来我用字典写了个小脚本,10秒出结果,其实核心就是“把单词当键,出现次数当值”。

比如要统计这句话:“I love Python, Python is easy. I love coding!”,先处理文本(去掉标点、转小写,不然“I”和“i”会算两个),再统计:

# 1. 要统计的文本,先处理标点和大小写

text = "I love Python, Python is easy. I love coding!"# 去掉逗号和句号,转成小写,再按空格分成单词列表words = text.replace(",", "").replace(".", "").lower().split()

# 2. 用字典统计频率

word_count = {}for word in words:    # 关键:如果单词在字典里,次数+1;不在就设为1(get默认值0,加1正好是1)    word_count[word] = word_count.get(word, 0) + 1

# 3. 输出结果

print("单词频率统计:")for word, count in word_count.items():  # items()方法:同时取键和值    print(f"{word}: {count}次")

运行后会直接出: i:2次, love:2次, python:2次, is:1次, easy:1次, coding:1次 ,比手动数快多了。

实战小贴士:处理文本时,一定要先做“预处理”,比如去掉 ! “?”,转成统一大小写,不然会把“Python”和“python”算成两个词,这是新手最容易漏的一步。

场景3:管理商品库存,算总价只要1行。

前阵子帮家里开小卖部的朋友写过库存管理工具,他需要知道“每个商品剩多少、单个商品值多少钱、所有库存总价值”。用字典嵌套正好能实现,每个商品存“名称、单价、库存数量”,最后算总价超简单。直接上代码:

# 1. 定义库存字典:商品名是键,值是另一个字典(存单价和数量)

stock = {    "矿泉水": {"price": 2, "quantity": 50},    "方便面": {"price": 5, "quantity": 30},    "薯片": {"price": 8, "quantity": 20}}

# 2. 写个函数:计算单个商品的库存价值(单价×数量)

def single_value(goods):    if goods in stock:        value = stock[goods]["price"] * stock[goods]["quantity"]        print(f"{goods}的库存价值:{value}元")        return value    else:        print(f"库存里没有{goods}")        return 0

# 3. 计算所有库存的总价值(用列表推导式,1行搞定)

total_value = sum(stock[goods]["price"] * stock[goods]["quantity"] for goods in stock)

# 4. 测试

single_value("方便面")  # 输出“方便面的库存价值:150元”print(f"所有库存总价值:{total_value}元")  # 输出总价值(2*50+5*30+8*20=410元)

实战小贴士:如果需要新增商品,直接用 stock["可乐"] = {"price":3, "quantity":40} 就行,比用Excel改单元格方便,而且算总价时不用手动求和, sum 配合推导式一步到位。

最后:字典的3个核心优势,学会就够用。

其实这3个场景,已经覆盖了字典90%的日常用法,总结下来它的优势就3个:

1. 查得快。不管存多少数据,找一个键的速度都一样,比列表遍历快太多;

2. 能嵌套。像个人信息、商品库存这样的“多属性数据”,嵌套字典能存得很规整;

3. 操作活。 get 防报错、 items 取键值对、 in 判断是否存在,这些方法新手记住就能用。

建议你看完后动手试一遍,比如把场景1改成“学生成绩管理”,存姓名、语文、数学分数;把场景3改成“书架管理”,存书名、作者、本数。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

2220 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2220 文章
  3. Pack 1403 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章