当前位置: 首页 > news >正文

Python 字典推导式入门:一行构建键值对映射

在 Python 中,字典是常用的键值对数据结构,传统构建方式要么手动添加繁琐,要么 for 循环代码冗余。而字典推导式作为高效语法糖,能一行代码搞定字典创建,简洁又实用,是初学者必备技巧。本文用简单易懂的方式,带你快速掌握核心用法。
一、为什么选字典推导式?
先看传统方法的麻烦。比如要创建 “1-5 数字:平方” 的字典,传统 for 循环需要 3 行代码:

square_dict = {}
for x in range(1, 6):square_dict[x] = x**2
print(square_dict)  # {1:1, 2:4, 3:9, 4:16, 5:25}

而字典推导式只需 1 行:

square_dict = {x: x**2 for x in range(1, 6)}

核心优势很明显:代码精简、执行效率高(底层优化比循环快)、逻辑直 观,一眼就能看懂键值映射关系。
二、基础语法:一看就会
字典推导式基础格式超简单:

{键表达式: 值表达式 for 变量 in 可迭代对象}

键表达式:字典的键如何生成(如变量、简单运算);
值表达式:对应的值如何计算(如变量运算、函数调用);
可迭代对象:遍历的数据源(如 range、列表、字符串等)。
可选扩展:带简单条件过滤(只保留满足条件的键值对):

{键表达式: 值表达式 for 变量 in 可迭代对象 if 条件}

三、3 个实战示例:直接套用
示例 1:数值映射(最基础)
场景:生成 “数字:立方” 字典,用于快速查询:

cube_dict = {num: num**3 for num in range(1, 11)}
print(cube_dict)  # {1:1, 2:8, ..., 10:1000}

示例 2:列表配对(高频场景)
场景:两个列表分别存商品名和价格,配对成字典:

fruits = ["apple", "banana", "orange"]
prices = [5.99, 3.99, 4.59]

zip() 实现列表配对

fruit_price = {f: p for f, p in zip(fruits, prices)}
print(fruit_price)  # {'apple':5.99, 'banana':3.99, 'orange':4.59}

注意:两个列表长度不一致时,会以较短的为准。
示例 3:条件过滤(实用扩展)
场景:筛选价格低于 6 元的水果:

fruit_price = {'apple':5.99, 'banana':3.99, 'orange':4.59, 'grape':6.99}
cheap_fruits = {f: p for f, p in fruit_price.items() if p < 6.0}
print(cheap_fruits)  # {'apple':5.99, 'banana':3.99, 'orange':4.59}

四、2 个关键注意事项
键必须是不可变类型(字符串、数字、元组),用列表等可变类型会报错:

# 错误:列表不能当键
# wrong_dict = {[1,2]: "value"}
# 正确:用元组当键
correct_dict = {(1,2): "value"}

重复键会被覆盖:如果推导式中出现相同键,后出现的会覆盖前面的:

fruits = ["apple", "banana", "apple"]
prices = [5.99, 3.99, 6.99]
fruit_dict = {f: p for f, p in zip(fruits, prices)}
print(fruit_dict)  # {'apple':6.99, 'banana':3.99}

五、总结
字典推导式的核心是 “用一行代码替代循环构建字典”,基础语法简单,3 个高频示例可直接套用,适合数值映射、列表配对、简单数据筛选等场景。
初学者不用追求复杂用法,先掌握基础格式,遇到字典创建需求时,优先用推导式替代传统循环。多动手练习几个场景(比如生成 “月份:天数”“姓名:成绩” 字典),很快就能熟练运用。记住避坑要点,就能高效发挥它的简洁优势,让代码更精炼。

http://www.dtcms.com/a/582596.html

相关文章:

  • 怎么让自己的网址被百度收录(网站如何被百度收录进去)
  • 简易静态网站制作流程图室内设计师工资
  • 爬虫导致IP被封号了如何解封?
  • 网站平台建设公司邮箱或企业邮箱
  • 临沂网站制作加速企业发展用什么软件制作网站
  • C++:类和对象---进阶篇
  • 深圳市南山区住房和建设局网站官网淘宝客怎么做网站导购
  • e网科技网站石家庄seo网站优化公司
  • 合肥响应式网站开发方案网站建设新得体会
  • 手绘教学网站网络规划与设计专业
  • 网站做多语言wordpress 仿虎嗅
  • 打工人日报#20251107
  • 网站常用颜色wordpress 替换编辑器
  • 数据治理咨询项目方案建议书
  • SSE实时推送订单状态
  • 单页产品销售网站如何做推广软件开发人天报价标准
  • 上海网站开发培训价格网站建设代理费用
  • SAP PP报工统计报表分享
  • 企业级的Gin模板项目
  • 杭州模板做网站销售外包合同
  • Linux 理解 nohup cmd 后台运行机制
  • Java 开发 - HashMap 遍历元素的同时删除元素抛出 ConcurrentModificationException 异常(原理分析、解决方案)
  • 昆明如何做百度的网站做足彩推荐赚钱的网站
  • WSL2 安装Ubuntu卡在安装进度0%无响应问题解决
  • 微服务网站天津网站制作网页
  • h5互动网站建设顺企网官网
  • Maven介绍
  • C++ 递推与递归:两种算法思想的深度解析与实战
  • WPP Media(群邑)优质服务能力 再度蝉联京东京牌五星认证
  • 装修公司网站建设费用宁波seo基础入门