Python列表推导式、字典推导式与集合推导式用法实例分析


Posted in Python onFebruary 07, 2018

本文实例讲述了Python列表推导式、字典推导式与集合推导式用法。分享给大家供大家参考,具体如下:

推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:

列表(list)推导式
字典(dict)推导式
集合(set)推导式

一、列表推导式

1、使用[]生成list

基本格式

variable = [out_exp_res for out_exp in input_list if out_exp == 2]

out_exp_res:

列表生成元素表达式,可以是有返回值的函数。
for out_exp in input_list

迭代input_list将out_exp传入out_exp_res表达式中。
if out_exp == 2

根据条件过滤哪些值可以。

例一:

multiples = [i for i in range(30) if i % 3 is 0]
print(multiples)
# Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

例二:

def squared(x):
  return x*x
multiples = [squared(i) for i in range(30) if i % 3 is 0]
print multiples
# Output: [0, 9, 36, 81, 144, 225, 324, 441, 576, 729]

2、使用()生成generator

将俩表推导式的[]改成()即可得到生成器。

multiples = (i for i in range(30) if i % 3 is 0)
print(type(multiples))
# Output: <type 'generator'>

二、字典推导式

字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。直接举例说明:

例子一:大小写key合并

mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
mcase_frequency = {
  k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0)
  for k in mcase.keys()
  if k.lower() in ['a','b']
}
print mcase_frequency
# Output: {'a': 17, 'b': 34}

例子二:快速更换key和value

mcase = {'a': 10, 'b': 34}
mcase_frequency = {v: k for k, v in mcase.items()}
print mcase_frequency
# Output: {10: 'a', 34: 'b'}

三、集合推导式

它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。

例一:

squared = {x**2 for x in [1, 1, 2]}
print(squared)
# Output: set([1, 4])

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现电子词典
Apr 23 Python
Python线程详解
Jun 24 Python
python写一个md5解密器示例
Feb 23 Python
Python数据持久化shelve模块用法分析
Jun 29 Python
python复制列表时[:]和[::]之间有什么区别
Oct 16 Python
Python设计模式之原型模式实例详解
Jan 18 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
Aug 23 Python
解决django model修改添加字段报错的问题
Nov 18 Python
pandas-resample按时间聚合实例
Dec 27 Python
python实现飞船游戏的纵向移动
Apr 24 Python
简单了解python列表和元组的区别
May 14 Python
Python中BeautifulSoup通过查找Id获取元素信息
Dec 07 Python
浅析Python3爬虫登录模拟
Feb 07 #Python
Python实现的三层BP神经网络算法示例
Feb 07 #Python
Python 12306抢火车票脚本
Feb 07 #Python
django限制匿名用户访问及重定向的方法实例
Feb 07 #Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 #Python
Python实现的径向基(RBF)神经网络示例
Feb 06 #Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 #Python
You might like
如何对PHP程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
php allow_url_include的应用和解释
2010/04/22 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
jQuery中:contains选择器用法实例
2014/12/30 Javascript
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
JS如何生成随机验证码
2020/03/02 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
Python中的两个内置模块介绍
2015/04/05 Python
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
Python自动化开发学习之三级菜单制作
2017/07/14 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
Python遍历numpy数组的实例
2018/04/04 Python
用python编写第一个IDA插件的实例
2018/05/29 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
蔻驰美国官网:COACH美国
2016/08/18 全球购物
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
机电一体化职业规划书
2014/01/07 职场文书
考试不及格的检讨书
2014/01/22 职场文书
实验教师岗位职责
2014/02/13 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
融资合作协议书范本
2014/10/17 职场文书
郭明义观后感
2015/06/08 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android
Tomcat配置访问日志和线程数
2022/05/06 Servers
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python