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 29 Python
python中函数默认值使用注意点详解
Jun 01 Python
Python类属性的延迟计算
Oct 22 Python
在django中使用自定义标签实现分页功能
Jul 04 Python
对python3新增的byte类型详解
Dec 04 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
Aug 05 Python
python获取Linux发行版名称
Aug 30 Python
python绘制BA无标度网络示例代码
Nov 21 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
Python文件读写w+和r+区别解析
Mar 26 Python
基于python连接oracle导并出数据文件
Apr 28 Python
Python requests及aiohttp速度对比代码实例
Jul 16 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
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
用jQuery toggleClass 实现鼠标移上变色
2014/05/14 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
js格式化时间的方法
2015/12/18 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
python实现用户登录系统
2016/05/21 Python
Python实现简单的语音识别系统
2017/12/13 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
基于python的socket实现单机五子棋到双人对战
2020/03/24 Python
通过实例解析Python return运行原理
2020/03/04 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
python matlab库简单用法讲解
2020/12/31 Python
Notino瑞典:购买香水和美容产品
2019/07/26 全球购物
远东集团网络工程师面试题
2014/10/20 面试题
信息专业个人的自我评价
2013/12/27 职场文书
教师辞职报告范文
2014/01/20 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
MySQL Server 层四个日志
2022/03/31 MySQL