目录

  • 一.Python 字典推导式简介
  • 二.Python 字典推导式语法
  • 三.Python 字典推导式实战
    • 1.在字典中提取或者修改数据,返回新的字典
    • 2.在字符串中提取数据,返回新的字典
  • 四.重点总结
  • 五.猜你喜欢

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

一.Python 字典推导式简介

前面文章中我们介绍了 Python 条件推导式 和 Python 列表推导式,实际上就是把多行代码合并为一行代码的操作,使用推导式可以让程序的运行效率更高

Python 字典推导式是从一个或者多个迭代器快速简洁地创建数据类型的一种方法,它将循环和条件判断结合,从而避免语法冗长的代码,提高代码运行效率能熟练使用推导式也可以间接说明你已经超越了 Python 初学者的水平**。**

Python 推导式相关:

  • 条件推导式
  • 列表推导式
  • 字典推导式

二.Python 字典推导式语法

字典推导式使用方法其实也类似,也是通过循环和条件判断表达式配合使用,不同的是字典推导式返回值是一个字典,所以整个表达式需要写在{}内部。

'''
语法一:key:字典中的keyvalue:字典中的valuedict.items():序列condition:条件表达式key_exp:在for循环中,如果条件表达式condition成立(即条件表达式成立),返回对应的key,value并作key_exp,value_exp处理 value_exp:在for循环中,如果条件表达式condition成立(即条件表达式成立),返回对应的key,value并作key_exp,value_exp处理
'''{key_exp:value_exp for key,value in dict.items() if condition}'''
语法二:key:字典中的key value:字典中的value dict.items():序列 condition:条件表达式 key_exp:在for循环中,如果条件表达式condition成立(即条件表达式成立),返回对应的key,value并作key_exp,value_exp处理 value_exp1:在for循环中,如果条件表达式condition成立(即条件表达式成立),返回对应的key,value并作key_exp,value_exp1处理value_exp2:在for循环中,如果条件表达式condition不成立(即条件表达式不成立),返回对应的key,value并作key_exp,value_exp2处理'''{key_exp:value_exp1 if condition else value_exp2 for key,value in dict.items()}

三.Python 字典推导式实战

在以下的内容中涉及到字符串的大小写转换/拆分等函数,不熟悉使用的可以先熟悉以下字符串相关操作:python 字符串.

1.在字典中提取或者修改数据,返回新的字典

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python Python 字典推导式.py
@Time:2021/3/27 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""# 案例一:获取字典中key值是小写字母的键值对
dict1 = {"a":10,"B":20,"C":True,"D":"hello world","e":"python教程"}
dict2 = {key:value for key,value in dict1.items() if key.islower()}
print(dict2)# 案例二:将字典中的所有key设置为小写
dict3 = {key.lower():value  for key,value in dict1.items() }
print(dict3)# 案例三:将字典中所有key是小写字母的value统一赋值为'error'
dict4 = {key:value if key.isupper() else "error" for key,value in dict1.items() }
print(dict4)'''{key_exp:value_exp1 if condition else value_exp2 for key,value in dict.items()}'''
输出结果:
{'a': 10, 'e': 'python教程'}
{'a': 10, 'b': 20, 'c': True, 'd': 'hello world', 'e': 'python教程'}
{'a': 'error', 'B': 20, 'C': True, 'D': 'hello world', 'e': 'error'}
'''{key_exp:value_exp1 if condition else value_exp2 for key,value in dict.items()}'''

2.在字符串中提取数据,返回新的字典

在后期的爬虫课程中,我们需要获取 cookies 并以字典的形式传参,如果 cookies 是字符串则需要转换为字典 dict ,经典代码案例如下:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python Python 字典推导式.py
@Time:2021/3/27 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""cookies = "anonymid=jy0ui55o-u6f6zd; depovince=GW; _r01_=1; JSESSIONID=abcMktGLRGjLtdhBk7OVw; ick_login=a9b557b8-8138-4e9d-8601-de7b2a633f80; _ga=GA1.2.1307141854.1562980962; _gid=GA1.2.201589596.1562980962; _c1=-100; first_login_flag=1; ln_uact=18323008898; ln_hurl=http://head.xiaonei.com/photos/0/0/men_main.gif; jebe_key=88f1340c-592c-4dd6-a738-128a76559f45%7Cad33b3c730fcdc8df220648f0893e840%7C1562981108370%7C1%7C1562981106763; jebe_key=88f1340c-592c-4dd6-a738-128a76559f45%7Cad33b3c730fcdc8df220648f0893e840%7C1562981108370%7C1%7C1562981106765; jebecookies=793eb32e-92c6-470d-b9d0-5f924c335d30|||||; _de=E77807CE44886E0134ABF27E72CFD74F; p=a00d65b1f779614cd242dc719e24c73e0; t=292ba8729a4151c1a357e176d8d91bff0; societyguester=292ba8729a4151c1a357e176d8d91bff0; id=969937120; xnsid=1700b2cc; ver=7.0; loginfrom=null; wp_fold=0"# 字典推导式
cookies = {cookie.split("=")[0]:cookie.split("=")[1] for cookie in cookies.split("; ")}
print(cookies)'''
输出结果:
{'anonymid': 'jy0ui55o-u6f6zd', 'depovince': 'GW', '_r01_': '1', 'JSESSIONID': 'abcMktGLRGjLtdhBk7OVw', 'ick_login': 'a9b557b8-8138-4e9d-8601-de7b2a633f80', '_ga': 'GA1.2.1307141854.1562980962', '_gid': 'GA1.2.201589596.1562980962', '_c1': '-100', 'first_login_flag': '1', 'ln_uact': '18323008898', 'ln_hurl': 'http://head.xiaonei.com/photos/0/0/men_main.gif', 'jebe_key': '88f1340c-592c-4dd6-a738-128a76559f45%7Cad33b3c730fcdc8df220648f0893e840%7C1562981108370%7C1%7C1562981106765', 'jebecookies': '793eb32e-92c6-470d-b9d0-5f924c335d30|||||', '_de': 'E77807CE44886E0134ABF27E72CFD74F', 'p': 'a00d65b1f779614cd242dc719e24c73e0', 't': '292ba8729a4151c1a357e176d8d91bff0', 'societyguester': '292ba8729a4151c1a357e176d8d91bff0', 'id': '969937120', 'xnsid': '1700b2cc', 'ver': '7.0', 'loginfrom': 'null', 'wp_fold': '0'}'''

代码分析:

在字符串 cookies 中 ‘=’ 前面是 key ,’=’ 后面是 value ,每一个 ‘;’ 构成一个键值对;多个键值对构成一个字典;

  • 1.根据 ‘;’ 将字符串拆分为列表;
  • 2.根据第一步获取的列表,遍历时将每一个字符串根据 ‘=’ 再次拆分;
  • 3.根据第二步拆分的结果,列表第一个元素作为 key ,列表第二个元素作为 value ;

四.重点总结

Python 字典推导式和列表推导式的效率均比普通的 for 循环效率更高,在文章 Python 列表推导式文章末尾有做过测试,有兴趣的小伙伴可以直接前往:Python 列表推导式;

注意字典推导式与列表推导式的区别:

  • 1.列表推导式返回列表,表达式在中括号[]中
  • 2.字典推导式返回字典,表达式在大括号{}中

五.猜你喜欢

  1. Python 配置环境
  2. Python 变量
  3. Python 运算符
  4. Python 条件判断 if/else
  5. Python while 循环
  6. Python break
  7. Python continue
  8. Python for 循环
  9. Python 字符串
  10. Python 列表 list
  11. Python 元组 tuple
  12. Python 字典 dict
  13. Python 条件推导式
  14. Python 列表推导式
  15. Python 字典推导式

未经允许不得转载:猿说编程 » Python 字典推导式

Python 字典推导式 - Python零基础入门教程相关推荐

  1. python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)

    一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...

  2. Python globals 函数 - Python零基础入门教程

    目录 一.Python globals 函数语法 二.Python globals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pytho ...

  3. Python locals 函数 - Python零基础入门教程

    目录 一.locals 函数语法 二.locals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.locals ...

  4. Python reduce 函数 - Python零基础入门教程

    目录 一.Python reduce 函数简介 1.reduce 函数语法 2.reduce 函数原理 二.Python reduce 函数使用 1.reduce 函数普通使用 2.reduce 函数 ...

  5. Python chr 函数 - Python零基础入门教程

    目录 一.Python chr 函数简介 二.Python chr 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一 ...

  6. Python bytes 函数 - Python零基础入门教程

    目录 一.bytes 函数简介 二.bytes 函数使用 1.定义空的字节序列 bytes 2.定义指定个数的字节序列 bytes ,默认以 0 填充,不能是浮点数 3.定义指定内容的字节序列 byt ...

  7. Python range 函数 - Python零基础入门教程

    目录 一.Python range 函数简介 二.Python range 函数使用 1.Python range 函数常规使用 2.Python range 函数在 for 循环中使用 三.猜你喜欢 ...

  8. Python callable 函数 - Python零基础入门教程

    目录 一.Python callable 函数简介 二.Python callable 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pyt ...

  9. Python super 函数 - Python零基础入门教程

    目录 一.Python super 函数简介 二.Python super 函数语法 三.Python super 函数使用 1.案例一 2.案例二: 四.猜你喜欢 零基础 Python 学习路线推荐 ...

最新文章

  1. _variant_t和_bstr_t有什么区别
  2. Google Mock启蒙篇 [1] (Google C++ Mocking Framework for Dummies 翻译)
  3. Hyperledger Fabric on SAP Cloud Platform(SAP云平台上的超级账本简介)
  4. Asp.net mvc 知多少(六)
  5. 如何改变Delphi的快捷键 - DELPHI
  6. 如何通过Spring Boot实施Alexa技能
  7. P2P技术(NAT基础)
  8. python编写程序实现货币转换_使用Tkinter的Python实时货币转换器
  9. AR互动大屏项目实战
  10. 查看服务器GPU型号
  11. 如何用cmd运行jar
  12. 用isalpha函数来判断一个字符串中的字符是否是字母
  13. UE4-控制音效空间效果及衰减效果技巧
  14. postgresql源码学习(53)—— vacuum②-lazy vacuum之heap_vacuum_rel函数
  15. Guitar Pro 7如何编辑制谱,来聊聊吧
  16. C语言实现仿射密码体制
  17. STM32以太网通讯设计方案
  18. 移动端键盘收起,页面没能恢复原状的解决方案
  19. 【原创】高效质量活动之纺锤型分布
  20. 戴尔r910主板接口

热门文章

  1. WPF自定义控件的三种方式
  2. 【安全】一名安全数据科学家的日常生活
  3. 微服务架构四大金刚利器
  4. 前端内存优化的探索与实践
  5. 云上的Growth hacking之路,打造产品的增长引擎
  6. 使用kettle导入数据到ADB for PostgreSQL
  7. 对话MathWorks:解读MATLAB技术生态圈与未来趋势
  8. 一文教你如何使用 MongoDB 和 HATEOAS 创建 REST Web 服务
  9. NVIDIA发布全新推理软件,开创交互式会话AI新时代!
  10. php 自带多进程,php多进程实现