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的Flask框架中使用日期和时间的教程
Apr 21 Python
Python之web模板应用
Dec 26 Python
Python自定义线程池实现方法分析
Feb 07 Python
python如何实现反向迭代
Mar 20 Python
django的聚合函数和aggregate、annotate方法使用详解
Jul 23 Python
Python ORM框架Peewee用法详解
Apr 29 Python
Python pip安装模块提示错误解决方案
May 22 Python
python函数map()和partial()的知识点总结
May 26 Python
python3.4中清屏的处理方法
Jul 06 Python
浅析Python 多行匹配模式
Jul 24 Python
Python对excel的基本操作方法
Feb 18 Python
浅谈pytorch中stack和cat的及to_tensor的坑
May 20 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中使用Oracle数据库(3)
2006/10/09 PHP
?生?D片??C字串
2006/12/06 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
2019/03/06 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
总结Python编程中三条常用的技巧
2015/05/11 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
2014年幼儿园元旦活动方案
2014/02/13 职场文书
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
施工质量承诺书范文
2014/05/30 职场文书
楚门的世界观后感
2015/06/03 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python