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的Treq on Twisted来进行HTTP压力测试
Apr 16 Python
Python排序算法实例代码
Aug 10 Python
Python引用传值概念与用法实例小结
Oct 07 Python
python中实现精确的浮点数运算详解
Nov 02 Python
浅析Python装饰器以及装饰器模式
May 28 Python
如何优雅地处理Django中的favicon.ico图标详解
Jul 05 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
python 将字符串中的数字相加求和的实现
Jul 18 Python
Python倒排索引之查找包含某主题或单词的文件
Nov 13 Python
在Python中实现函数重载的示例代码
Dec 12 Python
python ftplib模块使用代码实例
Dec 31 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
Jan 08 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无限级栏目分类读取的实现代码
2014/02/19 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
jquery实现网页查找功能示例分享
2014/02/12 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
js修改onclick动作的四种方法(推荐)
2016/08/18 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
JS变量提升及函数提升实例解析
2020/09/03 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
详解Python中的Descriptor描述符类
2016/06/14 Python
django中send_mail功能实现详解
2018/02/06 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
解决django FileFIELD的编码问题
2020/03/30 Python
python能做哪方面的工作
2020/06/15 Python
python实现猜拳游戏项目
2020/11/30 Python
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
测绘工程个人的自我评价
2013/11/10 职场文书
好家长事迹材料
2014/01/23 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
结婚主持人致辞
2015/07/28 职场文书
入团申请书格式
2019/06/20 职场文书
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript